标题: jQuery设置ajax请求中的User-Agent
作者: Demon
链接: https://demon.tw/programming/jquery-ajax-user-agent.html
版权: 本博客的所有文章,都遵守“署名-非商业性使用-相同方式共享 2.5 中国大陆”协议条款。
昨天说了,我尝试过在AJAX请求中修改User-Agent,但是似乎没有效果,在FireFox下Bookmarklet仍然无法获得正确的返回值。在FireFox的帮助论坛上找到《Firefox 3.6.13 ajax setRequestHeader(‘User-Agent’, ‘…’) don’t work》这个帖子,看来也有人跟我遇到同样的问题。
从帖子的链接一直跟进,就来到了w3.org关于XMLHttpRequest的描述:
3.6.2. The
setRequestHeader()
methodTerminate these steps if header is a case-insensitive match for one of the following headers:
Accept-Charset
Accept-Encoding
Connection
Content-Length
Cookie
Cookie2
Content-Transfer-Encoding
Date
Expect
Host
Keep-Alive
Referer
TE
Trailer
Transfer-Encoding
Upgrade
User-Agent
Via
Note: The above headers are controlled by the user agent to let it control those aspects of transport. This guarantees data integrity to some extent. Header names starting with
Sec-
are not allowed to be set to allow new headers to be minted that are guaranteed not to come fromXMLHttpRequest
.
紫色部分说,上面的消息头只能由浏览器控制,而不能用XMLHttpRequest对象来修改,即不能通过JavaScript修改。但是这也只是w3建议的标准而已,至于浏览器遵不遵循标准,那就得看开发人员了。
为了测试,先写一个ua.php,回显User-Agent:
<?php echo $_SERVER['HTTP_USER_AGENT']; ?>
然后用jQuery发送ajax请求,并在发送之前用XMLHttpRequest对象
的setRequestHeader方法修改User-Agent:
<script type="text/javascript"> $.ajax({ type: "GET", url: "ua.php", success: function(data) { alert(data); }, beforeSend: function(xhr) { xhr.setRequestHeader("User-Agent", "uTorrent"); } }); </script>
可以通过访问ua.html来进行测试,看看你的浏览器是否支持修改User-Agent。根据我的测试,IE还是跟往常一样无视标准的存在,可以用JavaScript在ajax请求中设置User-Agent,而FireFox和Chrome都无法修改User-Agent。这样看来,用JavaScript写一个六维空间流量作弊书签小工具也不是难事。
但是,昨天写的那个Bookmarklet就真的只能在IE下使用了,虽然可以写一个FireFox或者Chrome插件来解析115的下载地址。但是谁会为了区区一个网盘而大动干戈写一个浏览器插件呢?反正我没有那么闲,谁爱写谁写去。退一步讲,就算有人写了插件,又有谁会安装呢?下个解析工具还快点。
反正我很少用115网盘,要不是为了宠物小精灵,我才不会无聊到研究这种东西。然而,昨天还能下载的宠物小精灵,今天却弹出一个“视频文件禁止共享,请登录下载!”的错误,原来是“为加强知识产权的保护力度,营造健康有益的网络环境,115网盘暂时停止影视资源外链服务。”看来我得把阵地转移到还没有加强知识产权保护力度的电驴了。
赞赏微信赞赏支付宝赞赏
随机文章:
那个“视频版权”的问题,可以解决:先注册个115帐号,登录后在禁止下载的页面点击一下“115解禁”的Bookmarklet(javascript:MoveMyFile.Show();)移动到自己收藏即可下载!
其实我只用115下载ape音乐,速度在国内蛮不错地说,比其他网盘都要好。
你对Bookmarklet还真是情有独钟,按照你的方法,弹出“不能收藏已经被禁止下载的文件”。其实登陆以后手动解析就可以得到下载地址了,虽然比较麻烦。
至于APE音乐,我可以去IPv6的BT站下载,10MB/s。但是以我电脑的烂音响,以我对音乐的白痴程度,MP3和APE没有什么区别,所以我还是听MP3,APE太占硬盘空间了。