XMLHttpRequest的open()在Chrome中失败

时间:2012-08-15 10:35:18

标签: javascript asp.net ajax asp.net-ajax

我正在尝试修补一些在Chrome中不起作用的AJAX。这不是我的脚本,我宁愿不把整个事情转换为jQuery。

xmlhttp.open("GET", query, true);
xmlhttp.onreadystatechange = function () {
    if (xmlhttp.readyState == 4) {
        console.log(xmlhttp.responseText);
    }
}
xmlhttp.send();

这实际上在使用Internet Explorer时会在日志中输出内容,但是在(Ch)rome中我得到一个空字符串,因为JS调试器告诉我GET失败了。目标URL是正确的,因为它在IE中工作,但它是某种ASP.NET脚本,其中我不熟悉的内部工作(我在这里做HTML,CSS和JavaScript)。

为什么允许IE从目标中检索信息,而不是Chrome?使用Chrome时,xmlhttpXMLHttpRequest,IE会获得某种ActiveXObject

编辑。我找到了一些可能的解决方案hereResponse.Close(),没有异步或指定/空数据类型。这是jQuery。

修改#2。 What Chrome is saying about my headers.

2 个答案:

答案 0 :(得分:2)

您可以在Chrome中的地址栏中输入网址来查看该网址吗?您的浏览器配置可能会阻止Chrome访问服务器。

另一种可能性是你被Same Origin Policy打破了 - 你在与该页面相同的域上访问的网址是什么?

答案 1 :(得分:0)

好的,我已经解决了。 Chrome显然不喜欢在请求的页面末尾有Response.Close()。更改为Response.End()修复它。谢谢你的帮助!

我还用一行jQuery代替了JavaScript。