axios/ajax 请求头部添加自定义字段报错(has been blocked by CORS policy: Request header field authorization is ...
报错解释:
该错误表明您尝试通过AJAX或axios发起跨域请求时,请求的头部添加了自定义字段,而这个请求在执行过程中被浏览器的CORS(Cross-Origin Resource Sharing,跨域资源共享)策略阻止了。CORS策略要求请求只能包含一组默认的头部字段,如果尝试添加非标准的自定义字段,可能会违反CORS的安全限制。
解决方法:
- 如果你控制服务器端,可以在服务器上设置CORS响应头,允许来自特定源的非标准头部字段。例如,在服务器的响应头中添加
Access-Control-Allow-Headers
字段,并在值中指定允许的头部字段。 如果你不能修改服务器配置,可以考虑以下替代方法:
- 修改客户端代码,移除或者不添加自定义的头部字段。
- 使用JSONP(如果只支持GET请求)。
- 使用服务器端代理,将请求发送到同源服务器,由服务器代理发起CORS请求。
- 如果你使用axios,可以设置
withCredentials
为true
,这样可以发送Cookie等认证信息,但同时可能需要服务器端支持处理凭证请求。
- 如果你只是在开发环境中遇到此问题,可以考虑使用浏览器插件来临时绕过CORS限制,例如
Moesif Origin & CORS Changer
等。
确保在实际部署时,服务器端的CORS配置是安全合理的,以避免潜在的安全风险。
评论已关闭