我常用的一个网站,这里姑且叫它 sd.com ,给所有的外链都加装了追踪器,过长的链接也会被截断。
(以下的网址均为化名)
比如有人发帖,里面包含了一个网址: http://example.com/external-link 。那帖子发出来,链接就会变成
<a href="http://sd.com/?url=vijsdneksodk">http://example.com/exter...</a>
href 里的”vijsdneksodk“好像不是从 http://example.com/external-link 这里计算出来的。
http://sd.com/?url=vijsdneksodk 请求一下就会得到一个 302 跳转,Location 是 http://linktrack.com/?u=http://example.com/external-link (当然 u 的参数是 url 编码过的,这里为了易读性就解掉了)
这个链接再请求一下,又会得到一个 302 跳转,Loacation 是 http://yet.another.linktrack.com/?u=http://example.com/external-link
这样子连环跳转大概会有 3-4 次,每跳一次都给我塞一堆 cookie,这个还好,最讨厌的是这一连串的跳转中,有一个追踪网站的域名我这里访问不了,所以每次点击链接都会出错。
我试着写个油猴脚本,把 href 里的 http://sd.com/?url=vijsdneksodk 还原成 http://example.com/external-link,这就需要向这个链接发一个 HEAD 请求,然后查看里面的 Location 参数。但是发现好像所有的请求( XMLHttpRequest 、fetch 之类的)都会自动跟随 302,然后直接撞上那个被拦截的域名并报错。
所以我想问问有没有什么油猴脚本的写法,能对一个网址发起 HEAD 请求,然后不跟随 302 重定向的?