调用外部接口报403错误的最简单解决办法
报403错误的原因
首先,报403错误的原因需要提及浏览器的防盗链机制。
防盗链机制
当你的项目和需要引用的网址不在同一个域内的,那么浏览器的防盗链机制发挥作用。
其中防盗链是利用HTTP header 中的referer来实现的。当浏览器向服务器发送请求时会带上referer,来告诉服务器从哪个页面链接过来的。
服务器端通过referer来判断请求是否是自己的域名,如果不是自己的域名就会拦截,不会将请求发送出去,如果是自己域名那么就继续访问。
请求发送成功的请求头Request Headers:
丰富自我知识,欢迎光临公式库网!
请求为发送成功的请求头 Request Headers:
丰富自我知识,欢迎光临公式库网!
方法:在 标签里加 meta
<meta name="referrer" content="never">
这样存在第三方网站上的图片,在你的网站上就可以访问了。
referrer
在某些情况下,出于一些原因,网站想要控制页面发送给 server 的 referrer 信息的情况下,可以使用这一 referer metadata 参数。
参数
referer 的 metedata 属性可设置 content 属性值为以下集合:
- never
- always
- origin
结果
- 如果 referer-policy 的值为 never:删除 http head 中的 referer;
- 如果 referer-policy 的值为 default:如果当前页面使用的是 https 协议,而正要加载资源使用的是普通的 http 协议,则将 http header 中额 referer 置为空;
- 如果 referer-policy 的值 origin:只发送 origin 部分;
- 如果 referer-policy 的值为 always:不改变 http header 中的 referer 的值;
举例
如果页面中包含了如下 meta 标签,所有从当前页面中发起的请求将不会携带 referer:
<meta name="referrer" content="never">
如果页面中包含了如下 meta 标签,则从当前页面中发起的 http 请求将只携带 origin 部分:
<meta name="referrer" content="origin">
运营不易,
感谢支持!
我的微信
我的微信公众号
我的微信公众号扫一扫
我的公众号