在使用XMLHttpRequest进行AJAX调用时,似乎无法从JavaScript更改大多数请求标头.请注意,request.setRequestHeader
必须request.open()
在Gecko浏览器中调用后(请参阅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");
}
}
}
Run Code Online (Sandbox Code Playgroud) 是否可以使用不同的用户代理加载iframe?使用iframe的移动用户代理可以帮助我的应用将移动网站显示为悬停弹出窗口.
例如,仅当用户代理来自移动用户代理时,Google才会显示移动搜索结果页面.
有没有其他解决方案或这个想法有任何安全风险?