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