今天被HTML的跨站请求折腾了个半死,下午终于知道了原因。
HTML的锚(也就是a标签),在链接到其他域名上时,浏览器会发送一个referer头,以让我们知道该请求是从哪个网站来的,但是有的网站为了防止盗链或者为了防止跨站攻击会对referer头进行处理。
当我们仅仅只需要简简单单的一个超链接,链接到我们需要的域名,而恰好我们的应用又对referer头做了检查时,一切都不再那么和谐了。
还好HTML大发善心,为锚添加了一个属性,让我们点击链接发送请求时不添加referer头。我们只需要为a添加rel="noreferer"属性。eg:
<a href="http://www.lddfg.com/" rel="noreferer" target="_blank">Snow的博客</a>
这样,点击链接发送的请求就不会带有referer头了。当然,这属性IE6这老人家是不认的。(ㆀ˘・з・˘)ωҺat?
referer浏览器兼容情况
网友评论