IE8 中的 Javascript 跨域请求
Javascript Cross domain requests in IE8
我有一个函数,可以针对数据库验证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;
}
}
}
问题是我希望验证函数返回 false,而不是 checkResponse 函数。
在其他浏览器中,将 open 设置为 false 可以解决问题,但在 IE 中则不然。
请不要回答j查询。
感谢您的帮助!
以下是将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
}
});
您需要考虑的第一点是更改 js 代码以非异步方式工作。否则,checkResponse 是您必须获得答案的唯一点。您的代码似乎是异步的,它应该是同步的。
问候。
相关文章:
- Facebook邀请好友请求javascript
- '$'未定义Jquery ajax请求-javascript导入
- 为什么Chrome似乎异步请求Javascript文件
- 基本的 AJAX 请求 Javascript/PHP 不起作用
- 请求Javascript/Angular遇到异步问题
- 为什么在浏览器请求javascript文件时请求Accept:*/*
- 是否可以在ajax请求(JavaScript)中使用File类(Java)
- 代码隐藏中的Cant请求javascript变量总是返回“”&”;
- ASP.NET潜在危险请求Javascript Regex
- 替代请求.javascript/jquery中的RawUrl
- 排队的函数调用请求javascript
- jQuery's请求Javascript函数
- 从CDN和本地请求javascript时不同的头
- 如何尽可能隐藏AJAX请求(JavaScript代码)
- 递归HTTP请求javascript
- 上传pdf/doc等和发送数据到服务器的请求- Javascript
- 当从本地服务器请求javascript时,Rails得到CORS错误
- 是ASP的使用.网络请求.JavaScript中的QueryString是安全的
- 按特定顺序加载(请求)javascript
- 使用facebook批量请求javascript api