旧的解决办法
public function behaviors()
|
-
Origin
即Access-Control-Allow-Origin
表示:响应头指定了该响应的资源是否被允许与给定的 origin 共享。 -
Access-Control-Request-Method
用于通知服务器在真正的请求中会采用哪种 HTTP 方法。因为预检请求所使用的方法总是OPTIONS
,与实际请求所使用的方法不一样,所以这个请求头是必要的。 -
Access-Control-Request-Headers
用于通知服务器在真正的请求中会采用哪些请求头。 -
Access-Control-Allow-Credentials
表示是否可以将对请求的响应暴露给页面。返回 true 则可以,其他值均不可以。 -
Access-Control-Max-Age
表示返回结果(即Access-Control-Allow-Methods
和Access-Control-Allow-Headers
提供的信息) 可以被缓存多久。 -
Access-Control-Expose-Headers
列出了哪些首部可以作为响应的一部分暴露给外部。
告诉你使用通配符的凭证是不安全的,让你设置更严格的
Origin
或者把
Access-Control-Allow-Credentials
设置为
false
。
也就是说不能
Access-Control-Allow-Credentials
为
true
并且
Access-Control-Allow-Origin
为
*
。
具体可参考: Reason: Credential is not supported if the CORS header ‘Access-Control-Allow-Origin’ is ‘*‘ | mozilla
新的问题
在开发环境根治跨域问题,使用
webpack-dev-server
代理。
前端:abc.test
后端:abc-api.test
代理:
abc.test/web-api
->
abc-api.test
proxy: { |
参考: dev-server devserverproxy | webpack
是否可以 jwt 来解决待研究。
References
– EOF –