Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何获得XMLHttpRequest的响应?_Javascript_Xmlhttprequest - Fatal编程技术网

Javascript 如何获得XMLHttpRequest的响应?

Javascript 如何获得XMLHttpRequest的响应?,javascript,xmlhttprequest,Javascript,Xmlhttprequest,我想知道如何使用XMLHttpRequest加载远程URL的内容,并将访问站点的HTML存储在JS变量中 比如说,如果我想加载并提醒()的HTML,我该怎么做呢?当XMLHttpRequest.readyState等于XMLHttpRequest.DONE时,您就可以得到它 下面是一个示例(与IE6/7不兼容) 为了更好地兼容交叉浏览器,不仅是IE6/7,还可以覆盖某些特定于浏览器的内存泄漏或bug,还可以通过触发ajaxical请求来减少冗长性,您可以使用 请注意,当不在本地主机上运行时,必须

我想知道如何使用XMLHttpRequest加载远程URL的内容,并将访问站点的HTML存储在JS变量中

比如说,如果我想加载并提醒()的HTML,我该怎么做呢?

XMLHttpRequest.readyState
等于
XMLHttpRequest.DONE
时,您就可以得到它

下面是一个示例(与IE6/7不兼容)

为了更好地兼容交叉浏览器,不仅是IE6/7,还可以覆盖某些特定于浏览器的内存泄漏或bug,还可以通过触发ajaxical请求来减少冗长性,您可以使用


请注意,当不在本地主机上运行时,必须考虑。您可能想考虑在您的域中创建代理脚本。

<> <代码> XMLHttpRequest <代码>,使用<代码> XMLHutpRestQuest.Rebug Stuts可能引发如下异常

 Failed to read the \'responseText\' property from \'XMLHttpRequest\': 
 The value is only accessible if the object\'s \'responseType\' is \'\' 
 or \'text\' (was \'arraybuffer\')
访问XHR响应的最佳方法如下

function readBody(xhr) {
    var data;
    if (!xhr.responseType || xhr.responseType === "text") {
        data = xhr.responseText;
    } else if (xhr.responseType === "document") {
        data = xhr.responseXML;
    } else {
        data = xhr.response;
    }
    return data;
}

var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
    if (xhr.readyState == 4) {
        console.log(readBody(xhr));
    }
}
xhr.open('GET', 'http://www.google.com', true);
xhr.send(null);

我建议查看
fetch
。它与ES5相当,使用承诺。它更具可读性,更易于定制

consturl=”https://stackoverflow.com";
获取(url)
.那么(
response=>response.text()/.json()等。
//与函数(response){return response.text();}相同
).那么(
html=>console.log(html)

);
XMLHttpRequest
纯JavaScript
一起使用的简单方法。您可以设置
自定义标题
,但可根据需要选择使用

1.使用POST方法: 您可以使用POST方法发送参数

2.使用GET方法: 请运行下面的示例,并将得到一个JSON响应

window.onload=function(){
var request=new XMLHttpRequest();
request.onreadystatechange=函数(){
if(this.readyState==4&&this.status==200){
console.log(this.responseText);
}
};
request.open('GET','https://jsonplaceholder.typicode.com/users/1');
request.send();

}
如果您对JS库开放,jQuery确实可以通过.load()方法简化这一过程:谢天谢地,终于有了一个不涉及jQuery的google结果:|我们如何制作代理?对我来说很好。很好的例子。工作正常。此问题是关于HTTPS的,您可能希望避免出于同步目的进行“获取”。您的评论没有意义。。。如果同步需要,请使用wait
 Failed to read the \'responseText\' property from \'XMLHttpRequest\': 
 The value is only accessible if the object\'s \'responseType\' is \'\' 
 or \'text\' (was \'arraybuffer\')
function readBody(xhr) {
    var data;
    if (!xhr.responseType || xhr.responseType === "text") {
        data = xhr.responseText;
    } else if (xhr.responseType === "document") {
        data = xhr.responseXML;
    } else {
        data = xhr.response;
    }
    return data;
}

var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
    if (xhr.readyState == 4) {
        console.log(readBody(xhr));
    }
}
xhr.open('GET', 'http://www.google.com', true);
xhr.send(null);
window.onload = function(){
    var request = new XMLHttpRequest();
    var params = "UID=CORS&name=CORS";

    request.onreadystatechange = function() {
        if (this.readyState == 4 && this.status == 200) {
            console.log(this.responseText);
        }
    };

    request.open('POST', 'https://www.example.com/api/createUser', true);
    request.setRequestHeader('api-key', 'your-api-key');
    request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    request.send(params);
}