jQuery ajax请求-IE11访问被拒绝 问题
我使用以下函数通过jQuery发出ajax请求:jQuery ajax请求-IE11访问被拒绝 问题,jquery,ajax,internet-explorer-11,Jquery,Ajax,Internet Explorer 11,我使用以下函数通过jQuery发出ajax请求: function ajaxRequest(requestName,responseFunction,parameters) { console.log('Making request ' + requestName); var now = new Date(); $.ajax({ type: "GET", url: "ajax.php", error: function(jqXHR,textStatus,errorT
function ajaxRequest(requestName,responseFunction,parameters) {
console.log('Making request ' + requestName);
var now = new Date();
$.ajax({
type: "GET",
url: "ajax.php",
error: function(jqXHR,textStatus,errorThrown ) {
console.log('Error: ' + textStatus + ' ' + errorThrown);
},
success:function(msg) {
console.log('Success! ' + msg);
}
});
}
出现“访问被拒绝”错误的可能原因有哪些?我能做些什么来获得更有意义的错误消息吗
更多信息…
我当前调用此函数是为了在输入字段中保存一个值。这适用于所有测试过的浏览器
我还从onpaste事件(即)调用此函数来执行相同的工作,这是失败的原因,但仅在IE11中。错误只是“访问被拒绝”
请注意,这不是跨域请求,而是请求同一目录中的文件
测试地点:
- Mac+Safari
- Mac+Chrome
- WinXP+IE8
- Win7+IE9
- 赢8+IE10
- 在8.1+IE11中(唯一导致该问题的。)
请注意,我已经去掉了代码中一些不相关的部分,例如使用responseFunction和parameters变量。经过大量研究,我能想到的唯一可行的解决方案是使用setTimeout使AJAX请求在1毫秒后触发,而不是立即触发。我认为这是IE11中的一些错误,但希望这个解决方案对某些人有用 最后,我更改了以下代码:
ajaxRequest('save_function','response_function',params);
为此:
setTimeout( (function(params) {
return function() {
ajaxRequest('save_function','update_save_marksheet_mark',params);
};
})(params),1);
需要明确的是,第一行代码在每一个测试的浏览器中都能正常工作,最早是IE7,IE11除外 这是实际的相对url吗?请尝试添加下面的代码-
epascarello-是的,这就是我测试的内容。感谢WisdmLabs的建议,但这并没有什么区别。还要确保您没有从CDN(如Google托管的库)加载jQuery资产。由于域不同,这违反了Microsoft用于防止Internet Explorer中跨站点脚本的某些安全协议。另一个试用解决方案是更改您的jQuery版本。感谢WisdmLabs-再次感谢所有好的想法,但我尝试过的所有想法:(您是如何想出这个解决方案的?您能指出任何其他信息吗?老实说,试用和错误-因为错误只发生在一组特定的情况下(即onPaste事件),我想如果我可以复制它,就像它不与onPaste事件同时工作一样,它应该可以工作-它确实做到了:)它肯定解决了我的问题!答案也适用于Windows 10。我在Windows10和IE11上也有同样的问题。你的“修复”是唯一有效的方法。