跨域问题('Access-Control-Allow-Origin)如何解决?

No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:0000' is therefore not allowed access.

原因:浏览器的同源策略不允许跨域访问,所谓同源策略指协议、域名、端口号相同。

解决方式:局部配置、全局配置、采用proxyTable解决。


第一种——局部配置

在每个controller类的上面添加以下代码

@CrossOrigin(allowedHeaders = "*", allowCredentials = "true")
public class ModelController {
}

第二种——全局配置

在web层的spring.xml配置文件中添加下面代码


        

第三种——采用proxyTable解决

proxyTable是什么?

vue-cli提供的解决vue开发环境下跨域问题的方法,proxyTable的底层使用了http-proxymiddleware(https://github.com/chimurai/http-proxy-middleware),它是http代理中间件,它依赖node.js, 基本原理是用服务端代理解决浏览器跨域:

修改前端的全局配置js文件:

'/api/cms': {
    target: 'http://localhost:0000',
    pathRewrite: {
        '^/api': ''//实际请求去掉/api
    }
}

 

你可能感兴趣的:(java)