$ .ajax()函数在IE中工作但在Chrome和FF中没有

时间:2012-09-18 09:11:22

标签: jquery

我想这个问题在此论坛之前没有被问过,尝试过很多,但没有一个匹配或为我工作过。下面是JSFiddle代码链接:

JSFiddle

在IE8和IE9中一切都运行良好,但在其他任何浏览器中都没有。我尝试在Chrome中查找我遇到的问题

XMLHttpRequest cannot load http://v3.actisku.com/GetUserPostData?pid=Test-37&surv=1170. Request header field X-Requested-With is not allowed by Access-Control-Allow-Headers

我尝试搜索必要的解决方案,即CORS,但无法找出解决方案。我并肩寻找同样的东西。

编辑:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<html><head>

    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
                xmlhttp = new XMLHttpRequest();
            }
            var contents = $.ajax({
                url: 'http://v3.actisku.com/GetUserPostData?pid=Test-37',
                cache: false,
                crossDomain: true,
                dataType: 'html',
                data: { surv: '1170'},
                async: false
            }).responseText;

            var test = contents;
            alert(test);
            test = test.replace(/\t/g, ';');
            alert(test);
            test = test.replace(/\n/g, 'break');
            alert(test);
            $('#contentArea').attr('value', test);
        });
    </script>
</head>

<body>
<textarea id="contentArea" rows="10" cols="50"></textarea>
</body>
</html>​

我们可以手动添加标题,以便服务器感觉它正在从IE本身获取请求。

此致 ICR

2 个答案:

答案 0 :(得分:2)

好的,就像那里说的那样......“Access-Control-Allow-Headers不允许请求头字段X-Requested-With”服务器阻止所有AJAX / XHR请求。请尝试联系服务器管理员,了解服务器配置

IE使用不同的方式发送ajax请求(因此它们没有被阻止),因为它们使用ActiveXObject("Msxml2.XMLHTTP")ActiveXObject("Microsoft.XMLHTTP"),服务器可能会在传递给标头时以不同方式读取它们。

答案 1 :(得分:0)

您的代码中没有任何内容可以创建浏览器不兼容性。事实上,他们可以在Firefox和Chrome中正常运行。但是,这似乎没必要。

if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp = new XMLHttpRequest();
}

正如Mahan所说,这看起来像服务器配置问题。