我想这个问题在此论坛之前没有被问过,尝试过很多,但没有一个匹配或为我工作过。下面是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
答案 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所说,这看起来像服务器配置问题。