仅在 IE9 上存在的 ajax 调用中的访问被拒绝

Posted

技术标签:

【中文标题】仅在 IE9 上存在的 ajax 调用中的访问被拒绝【英文标题】:Access denied in ajax call only existing on IE9 【发布时间】:2012-05-27 14:00:31 【问题描述】:

我在使用 Xmlhttprequest 进行 ajax 调用时遇到了这个问题。我在 Firefox、Chrome、Safari 上测试了代码,它们都运行良好。只有IE上存在的问题,我使用的版本是9。 有人说我应该启用跨域支持。实际上,我将 Access-Control-Allow-Origin: * 添加到 http响应头。有任何想法吗?谢谢。

我的代码是:

var xhr = new XMLHttpRequest();
var query = queryString.pageName.abbr + "="
        + encodeURIComponent(queryString.pageName.value) + "&"
        + queryString.pageURL.abbr + "="
        + encodeURIComponent(queryString.pageURL.value);
var getURL = "http://localhost:10001/test?" + query;

xhr.open('GET', getURL, false);
var result;
xhr.onreadystatechange = function() 
    var responseBody;
    if (xhr.readyState == 2)  // headers and status received
        alert(xhr.status);
     else if (xhr.readyState == 4)  // full body received
        result = xhr.responseText;
    
;
xhr.send(null);

【问题讨论】:

你应该使用 jQuery 之类的东西来抽象这个意大利面条 @Joseph,它在使用 XMLHttpRequest 时也应该可以工作。我用解决方案更新问题。 您遇到异常了吗?执行此脚本的页面的域是什么?为什么不直接使用 jQuery? 【参考方案1】:

这里有人遇到同样的问题:http://css-tricks.com/forums/discussion/17449/xmlhttprequest-not-working-in-ie9/p1。 也许这会有所帮助:http://msdn.microsoft.com/en-us/library/cc288060。 和其他人一样,我也建议使用 jQuery。他们思考这些问题:http://bugs.jquery.com/ticket/8283

【讨论】:

以上是关于仅在 IE9 上存在的 ajax 调用中的访问被拒绝的主要内容,如果未能解决你的问题,请参考以下文章

当ajax目标是localhost时,IE 10和11中的访问被拒绝

Ajax 仅在元素存在时渲染

“aaaaa”存储库的拉取访问被拒绝不存在或可能需要“docker login”

无法在 ajax 调用中访问 Url.Action 中的项目

IE9下JQuery发送ajax请求失效

页面仅在第一次通过 jquery 在 mvc 中刷新 ajax 调用响应