我正在使用JQuery向我自己的Web服务发出AJAX请求。我需要为HTTP-AJAX-Request设置或修改User-Agent
HTTP-Header,我怎样才能以最简单的方式做到这一点?JQuery Ajax请求:更改用户代理
我尝试了一些用户提供的使用setRequestHeader
方法来设置User-Agent的提示,但这不起作用。它实际上适用于其他新创建的标题(如X-Test-Header
),但它不适用于User-Agent
。
谢谢!
我正在使用JQuery向我自己的Web服务发出AJAX请求。我需要为HTTP-AJAX-Request设置或修改User-Agent
HTTP-Header,我怎样才能以最简单的方式做到这一点?JQuery Ajax请求:更改用户代理
我尝试了一些用户提供的使用setRequestHeader
方法来设置User-Agent的提示,但这不起作用。它实际上适用于其他新创建的标题(如X-Test-Header
),但它不适用于User-Agent
。
谢谢!
这是根本不可能的,您不允许更改XMLHttpRequests的用户代理。我不知道这是否是有效的互联网浏览器,但W3C指定here:
的setRequestHeader()方法
[...]
当setRequestHeader(头,值)被调用的方法,所述用户代理必须执行这些步骤: [...]
终止这些步骤,如果报头是以下标题之一不区分大小写匹配:
[...]
- 的User-Agent
2017更新:您链接的W3C TR规范已移至[this whatwg spec](https://xhr.spec.whatwg.org/#the-setrequestheader()-method),它引用了[禁止标题的此列表(https://fetch.spec.whatwg.org/#forbidden-header-name),它不包含'User-Agent'。 MDN [明确确认](https://developer.mozilla.org/en-US/docs/Glossary/Forbidden_header_name)不再禁止“用户代理”。尽管Chrome仍然拒绝它,所以我认为你的建议还没有失效。 – mrec 2017-02-22 19:00:18
如果您使用的是jQuery,请在ajaxSetup中设置请求标头。
$.ajaxSetup({
beforeSend: function(request) {
request.setRequestHeader("User-Agent","InsertUserAgentStringHere");
}
});
嗯,你总是可以使用jQuery张贴到服务器端页面,然后又是能够修改User-Agent
头,并且向jQuery直接访问的页面发出请求。
看到这个讨论http://forum.jquery.com/topic/jquery-specifying-user-agent-with-ajax – 2011-04-24 16:55:33
看到我下面的评论,不适合我。 – theomega 2011-04-24 19:44:01