JQuery Ajax 请求:更改用户代理
我正在使用 JQuery 向我自己的 Web 服务发出 AJAX 请求。我需要设置或修改 HTTP-AJAX-Request 的 User-Agent
HTTP-Header,我怎样才能以最简单的方式做到这一点?
我尝试了一些用户提供的提示,使用 setRequestHeader
方法来设置 User-Agent
,但这不起作用。事实上,它确实适用于其他新创建的标头(例如 X-Test-Header
),但不适用于 User-Agent
。
I'm using JQuery to issue an AJAX request to my own Webservice. I need to set or modify the User-Agent
HTTP-Header for the HTTP-AJAX-Request, how can I do this the easiest way?
I tried the hint provided by some users to use the setRequestHeader
Method to set the User-Agent
, but this does not work. It does in fact work for other newly created headers (like X-Test-Header
) but it does not work for User-Agent
.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
这是根本不可能的,您不允许更改 XMLHttpRequests 的用户代理。我不确定这对于 Internet-Explorer 是否有效,但 w3c 指定 这里:
It is simply impossible, you are not allowed to change the user-agent for XMLHttpRequests. I'm not sure if this is valid for Internet-Explorer, but the w3c specifies here:
如果您使用 jQuery,请在 ajaxSetup.json 中设置请求标头。
If you are using jQuery, set the request header in the ajaxSetup.
好吧,您始终可以使用 jQuery 发布到服务器端页面,然后服务器端页面可以修改 User-Agent 标头,并向可以直接访问的页面发出请求通过 jQuery。
Well, you could always use jQuery to post to a server-side page which then in turn is able to modify the
User-Agent
header, and also make a request to the page which would have been directly accessed by jQuery.实现此目的的一种方法是覆盖
window.navigator
对象的__defineGetter__
方法中的本机代码。检查一下:
前后在控制台中运行
navigator.userAgent
进行检查。适用于 Chrome。我没有检查过其他浏览器。
您可以在这里阅读更多相关信息:https://www.codeproject。 com/Tips/1036762/Mocking-userAgent-with-JavaScript
A way to do this is to overwrite the native code in the
__defineGetter__
method of thewindow.navigator
object.Check this out:
Run
navigator.userAgent
in the console before and after to check.Works in Chrome. I haven't checked other browsers.
You can read more about it here: https://www.codeproject.com/Tips/1036762/Mocking-userAgent-with-JavaScript
我是这样做的:
我将 ajax 请求发送到一个单独的 php 脚本,该脚本的作用就像转发器一样,在这个 php 脚本中,您将发出原始请求并根据需要更改用户代理。
您可以在 file_get_contents 中设置用户代理,如下所示:
https://gist.github.com/vyspiansky/82f4b1ef6fcff160047d
I have done it like this:
I send the ajax request to a seperate php script that acts just like a forwarder, in this php script you will then make the original request and change the user-agent as you want.
You can set the user-agent in file_get_contents like this:
https://gist.github.com/vyspiansky/82f4b1ef6fcff160047d