场景:在调用太平洋网站访问IP的时候,本地访问没任何问题,部署到网站上就报403,单独访问太平洋网络IP也没问题。
链接:https://whois.pconline.com.cn/ipJson.jsp 【复制链接到地址栏访问没问题,如果点击链接跳转访问会报403】
对比了一下细节:
当前端项目在访问第三方外链的时候,有可能会显示403 forbidden报错,打开控制台,可以看到在前端项目中打开,数据请求的请求头多了一个Referer: https://link.csdn.net
而直接复制地址,在新窗口打开,却没有任何问题,可以正常访问。打开控制台,请求头中并没有携带Referer
原因分析:Referer携带了我们自身网站的域名,第三方网站认为这是非法访问,所以报错403 forbidden,因此我们需要在自己项目中访问第三方外链的时候,去掉Referer信息:
方法:可以直接在index.html添加以下代码
<!--通过 Referrer 检测是否来自规定域名,来进行防盗链。如果没有设置referrer,那就可以直接绕过防盗链机制,直接使用或盗取。-->
<meta name="referrer" content="no-referrer" />