gpt4 book ai didi

IE8中的Javascript跨域请求

转载 作者:行者123 更新时间:2023-12-02 19:40:48 25 4
gpt4 key购买 nike

我有一个函数可以根据数据库验证 ID。如果找到 ID,该函数返回 true,如果没有找到,则返回 false。

收到在其他浏览器中工作的请求。现在正在努力使用 Internet Explorer 的 XDomainRequest 来解决这个问题。

function verify(id){
xmlhttp=new window.XDomainRequest();
xmlhttp.onload = checkResponse;
xmlhttp.open("GET", "http://abc.com/verify?id=" + encodeURIComponent(id));
xmlhttp.send();

function checkResponse(){
if(xmlhttp.responseText == 200) {
return true;
} else {
return false;
}
}
}

问题是我希望 verify 函数返回 false,而不是 checkResponse 函数。

在其他浏览器中将 open 设置为 false 可以解决问题,但在 IE 中不行。

请不要使用 jQuery 答案。

感谢您的帮助!

最佳答案

这里推荐将 IE8 中的 CORS 请求合并到 jQuery 中。您可能可以将此作为您自己的起点:

https://github.com/jaubourg/ajaxHooks/blob/master/src/ajax/xdr.js

此外,verify 不应该是同步操作。建议向其传递回调函数并保持异步:

function verify(id, callback){
var xmlhttp = new window.XDomainRequest();
xmlhttp.onload = function () {
callback( xmlhttp.responseText === 200 );
};
xmlhttp.open("GET", "http://abc.com/verify?id=" + encodeURIComponent(id));
xmlhttp.send();
}

然后你可以像这样调用:

verify( 123456, function ( isValid ) {
if ( isValid ) {
// do something if valid
} else {
// or not
}
});

关于IE8中的Javascript跨域请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10420213/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com