首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery ajax请求- IE11访问被拒绝

jQuery ajax请求- IE11访问被拒绝
EN

Stack Overflow用户
提问于 2014-11-13 14:03:42
回答 1查看 5.4K关注 0票数 5

问题是

我使用以下函数通过jQuery发出ajax请求:

代码语言:javascript
复制
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);
    }
 });
}

“访问被拒绝”错误的可能原因是什么?我能做些什么来获得更有意义的错误消息吗?

更多信息.

我现在调用这个函数是为了在输入字段中保存一个值。这在所有经过测试的浏览器中都是有效的。

我还从only事件(即)调用这个函数来完成相同的工作,这就是失败的地方,但只在IE11中。错误只是“访问被拒绝”。

注意,这不是跨域请求,而是请求同一个目录中的文件。

在以下方面测试:

  • Mac + Safari
  • Mac + Chrome
  • WinXP + IE8
  • Win7 + IE9
  • Win 8+ IE10
  • 在8.1 + IE11中(导致问题的唯一原因)。

请注意,我已经删除了代码中一些不相关的部分,例如使用responseFunction和参数变量。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-20 14:10:58

经过大量的研究,我能想出的唯一可行的解决方案是使用setTimeout使AJAX请求在1毫秒后触发,而不是立即触发。我猜想这是IE11中的一些错误,但希望这个解决方案能对某些人有用。

最后,我修改了这段代码:

代码语言:javascript
复制
ajaxRequest('save_function','response_function',params);

对此:

代码语言:javascript
复制
setTimeout( (function(params) {
    return function() {
        ajaxRequest('save_function','update_save_marksheet_mark',params);
    };
})(params),1);

首先要说明的是,除了IE7之外,第一行代码在每个测试过的浏览器中都能工作,包括IE11。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26910691

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档