我有一个使用jQuery 1.4.2脚本的iframe.同样的iframe被注入到两个http和https站点中.jQuery脚本作为相对路径包含在主HTML文件中(例如,/ scripts/jquery-1.4.2.min.js).
进行AJAX调用时,Internet Explorer拒绝访问.AJAX正在调用另一个子域,但它正在使用正确的协议.所有其他浏览器都可以工作,但Internet Explorer会出现以下错误:
SCRIPT5:访问被拒绝.
jquery-1.4.2.min.js,第127行字符344
我听说这个错误来自跨域AJAX调用.但为什么IE是唯一一个给我废话的人呢?有IE解决方案吗?
另外,这是我的AJAX:
$.ajax({
url: thisURL,
dataType: "json",
data: {cmd : 'getMessage', uurl: urlVar, t: Math.random()},
success: function(ret){
callback(ret)
}
});
Run Code Online (Sandbox Code Playgroud) 这是我的代码
$.ajax(
{
type: "GET",
url: 'http://devserver:7995/stdpart/services/GetAllPartsWithFilter',
dataType: 'json',
data: jsonPartsData,
success: fnGetPartsData,
error: PartsLoadError
});
Run Code Online (Sandbox Code Playgroud)
这是在IE8中运行良好的代码,但在Firefox和Chrome浏览器中失败了.当我检查XHR对象时,它说的是状态代码为0.我检查了所有其他问题,没有一个能帮我识别问题.
让我知道,如果我在这段代码中做错了什么.如果$ .ajax有一些兼容性问题,那么请建议一些与之相当的东西.
更新: 我们在http://www.xml.com/pub/a/2005/12/21/json-dynamic-script-tag.html找到了一个解决方案
它使用Dynamic Scripting的概念.我们在我们的应用程序中做了同样的事情,然后现在每件事似乎都在工作.然而要充分分析.