jQuery ajax请求 - IE11访问被拒绝

时间:2014-11-13 14:03:42

标签: 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,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变量。

1 个答案:

答案 0 :(得分:7)

经过大量的研究,我能想出的唯一解决方案就是使用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除外。