在使用XMLHttpRequest進行AJAX調用時,似乎無法更改JavaScript中的大多數請求標頭。請注意,request.setRequestHeader
必須在Gecko瀏覽器中的request.open()
之後調用(請參閱http://ajaxpatterns.org/Talk:XMLHttpRequest_Call)。當我設置Referer,它沒有得到設置(我看着使用Firebug和篡改數據發送的請求標頭)。當我設置用戶代理時,它完全搞砸了AJAX調用。設置接受和內容類型確實工作,但是。我們是否阻止在Firefox 3中設置Referer和User-Agent?在JavaScript中設置請求標頭
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");
}
}
}
副手不確定(現在也沒有工具可以測試),但看起來很可能,因爲這兩個頭文件不需要設置,事實上設置它們本質上是可疑的 – annakata 2009-08-12 20:55:49