我正在构建一个通过 Nginx 服务器与 Laravel API 进行通信的 Web 应用程序。我尝试按照 Nginx 网站上的说明进行操作完全开放的科尔斯 https://enable-cors.org/server_nginx.html,但它不喜欢发送凭据时的通配符响应。
访问'https://api.*** 获取来自原点“http://localhost:8080”的 .com/' 已被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:“Access-Control-Allow-Origin”标头的值响应不能是通配符 '' 当请求的凭据模式为“包含”时。
API 服务器需要 Bearer 访问令牌进行身份验证,并且每个端点都位于服务器上自己的路径上。在这种情况下配置 Nginx 的正确方法是什么?
错误消息是正确的,您不能使用通配符来源and证书:
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Origin https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Origin
对于请求没有凭证,字面值“*
" 可以指定为通配符;该值告诉浏览器允许来自任何来源的请求代码访问资源。尝试将通配符与凭据一起使用会导致错误 https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS/Errors/CORSNotSupportingCredentials.
相反,只需传回实际的来源,即到达 Origin HTTP 标头的来源,那么它将始终匹配:
add_header Access-Control-Allow-Origin $http_origin always;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)