处理跨域问题

Posted duqianqian

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了处理跨域问题相关的知识,希望对你有一定的参考价值。

 

1.后端处理(这里确定的是java处理方式,不确定别的语言处理是否也是这个方式):

  response.setHeader("Access-Control-Allow-Origin", "*");

  response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
  response.setHeader("Access-Control-Max-Age", "3600");
  response.setHeader("Access-Control-Allow-Headers", "x-requested-with");


存在问题:

  上面方式设置可以实现跨域请求,但是不支持Cookie,从而导致session也无法使用。

 

解决方案:

  response.setHeader("Access-Control-Allow-Origin", request.getHeader("Origin"));
  response.setHeader("Access-Control-Allow-Credentials", "true");
  使用cookie时 Access-Control-Allow-Origin 不可以设置为*;必须设置为具体值。

  ajax 请求时需要设置withCredentials:true

 

2.前端处理方式

  2.1.黑科技:https://blog.csdn.net/zm_miner/article/details/108448527

  2.2 配置charles

  2.3修改webpack.config.js配置,做代理

  2.4修改vue.config.js配置,做代理

 

3.前后端配合处理,使用jsonp请求

以上是关于处理跨域问题的主要内容,如果未能解决你的问题,请参考以下文章

Nginx处理前端跨域(补充)

跨域常见问题

springboot如何解决跨域问题?

Nginx代理后端API(处理前端跨域问题)

postMessage处理iframe 跨域问题

postMessage处理iframe 跨域问题