我正在使用JQuery向我自己的Web服务发出一个AJAX-Request。我需要为HTTP-AJAX-Request设置或修改User-Agent
HTTP-Header,如何以最简单的方式执行此操作?
我尝试了一些用户提供的提示,使用setRequestHeader
方法设置User-Agent,但这不起作用。它实际上适用于其他新创建的标题(例如X-Test-Header
),但它不适用于User-Agent
。
谢谢!
答案 0 :(得分:28)
根本不可能,您不能更改XMLHttpRequests的用户代理。我不确定这对Internet-Explorer是否有效,但w3c指定here:
setRequestHeader()方法
[...]
调用setRequestHeader(header,value)方法时,用户代理必须运行以下步骤: [...]
如果header是以下标题之一的不区分大小写的匹配项,请终止这些步骤:
[...]
- 的User-Agent
答案 1 :(得分:10)
如果您使用的是jQuery,请在ajaxSetup中设置请求标头。
$.ajaxSetup({
beforeSend: function(request) {
request.setRequestHeader("User-Agent","InsertUserAgentStringHere");
}
});
答案 2 :(得分:5)
好吧,你总是可以使用jQuery发布到服务器端页面,然后又可以修改User-Agent
标头,并向页面发出请求,这些请求可以直接被jQuery访问
答案 3 :(得分:0)
执行此操作的一种方法是覆盖__defineGetter__
对象的window.navigator
方法中的本机代码。
检查一下:
window.navigator.__defineGetter__('userAgent', function () {
return "___I'M A GHOST___";
});
在控制台中运行navigator.userAgent
,然后进行检查。
在Chrome中工作。我没有检查其他浏览器。
您可以在此处了解更多信息:https://www.codeproject.com/Tips/1036762/Mocking-userAgent-with-JavaScript