跨域解决方案
跨域标准解决方案 => CORS
CORS:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/CORS
附带身份凭证的请求与通配符 在响应附带身份凭证的请求时:
服务器不能将 [Access-Control-Allow-Origin] 的值设为通配符“”,而应将其设置为特定的域,
如:Access-Control-Allow-Origin: https://example.com。
服务器不能将 [Access-Control-Allow-Headers] 的值设为通配符“”,而应将其设置为首部名称的列表,
如:Access-Control-Allow-Headers: X-PINGOTHER, Content-Type
服务器不能将 [Access-Control-Allow-Methods] 的值设为通配符“*”,而应将其设置为特定请求方法名称的列表,
如:Access-Control-Allow-Methods: POST, GET
对于附带身份凭证的请求(通常是 Cookie),服务器不得设置 Access-Control-Allow-Origin 的值为“”。
如果请求携带身份信息cookie前后端需要配置
前端:invocation.withCredentials = true;
后端:Access-Control-Allow-Credentials: true
这是因为请求的首部中携带了 Cookie 信息,如果 Access-Control-Allow-Origin 的值为“”,请求将会失败。
而将 Access-Control-Allow-Origin 的值设置为 https://example.com,则请求将成功执行。
另外,响应首部中也携带了 Set-Cookie 字段,尝试对 Cookie 进行修改。如果操作失败,将会抛出异常。
如果有多个域名
服务器设置白名单
正向代理:本地起一个服务,通过浏览器请求本地同源服务,本地服务转发后台接口实现跨域
反向代理:nginx配置代理,不直接请求api,请求到代理,代理转发到服务器