js跨域请求报错:Refused to set unsafe header "Referer"?

尝试在我的网站程序中使用跨域请求另一个网站的数据,目标网站需要验证http request中的refer参数。

将chrome浏览器的跨域选项打开,并且使用如下风格代码尝试发送请求

 $.ajax({
            headers: {
                "Referer":"https://xxx.com/xxxxxx"
            },
            type:'POST',
            data:{...},
            success:function(r){...}
 });

结果浏览器报错:Refused to set unsafe header "Referer"

查询资料得知,浏览器貌似不允许设置请求的header参数。

有相关开发经验的同学请指教,这个需求在理论上是否可实现?如何实现?

阅读 59.5k
2 个回答

为了安全,跨域XHR对象有一些限制:

  • 不能使用 setRequestHeader() 设置自定义头部

  • 不能发送和接收 cookie

  • 调用 getAllResponseHeaders() 方法总会返回空字符串

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏