【发布时间】:2013-05-25 12:19:27
【问题描述】:
在使用 XMLHttpRequest 进行 AJAX 调用时,我似乎无法从 JavaScript 更改大多数请求标头。请注意,当 Gecko 浏览器中必须在 request.open() 之后调用 request.setRequestHeader 时(请参阅 http://ajaxpatterns.org/Talk:XMLHttpRequest_Call)。当我设置 Referer 时,它没有被设置(我查看了使用 Firebug 和 Tamper Data 发送的请求标头)。当我设置 User-Agent 时,它完全搞乱了 AJAX 调用。但是,设置 Accept 和 Content-Type 确实有效。我们是否禁止在 Firefox 3 中设置 Referer 和 User-Agent?
var request = new XMLHttpRequest();
var path="http://www.yahoo.com";
request.onreadystatechange=state_change;
request.open("GET", path, true);
request.setRequestHeader("Referer", "http://www.google.com");
//request.setRequestHeader("User-Agent", "Mozilla/5.0");
request.setRequestHeader("Accept","text/plain");
request.setRequestHeader("Content-Type","text/plain");
request.send(null);
function state_change()
{
if (request.readyState==4)
{// 4 = "loaded"
if (request.status==200)
{// 200 = OK
// ...our code here...
alert('ok');
}
else
{
alert("Problem retrieving XML data");
}
}
}
【问题讨论】:
-
临时不确定(现在也没有工具可以测试),但似乎有可能因为这两个标头都不需要设置,实际上设置它们本质上是可疑的
标签: javascript ajax