关于跨域问题一般都是出现在接口上,比如本地开发localhost想请求http://1.2.3.4:8080的接口,这样就跨域了,然后项目配置一下代理就好,将整个请求代理到这个地址。
所以关于这一块我的直观理解就是,url里面的协议、hostname和端口号,与接口的保持一致就行,这样就不会出现跨域的报错,至于代理那一层暂时不去关注。
但是今天看了一个项目,url地址是http://xxxx.com,但是请求的地址是http://xxx-api.com。
这是怎么做到不报跨域错误的呢?nginx配置?
更新:
刚才思考了一下,不知道理解的对不对。
跨域报错,是浏览器拦截了响应,请求是正常发出,不是拦截了请求。
所以说即使是跨域请求,还是能发出去的。只是在响应的时候是先经过nginx再到浏览器端,此时如果在nginx配置一下代理,然后浏览器在接受响应的时候就不会出现跨域的报错。
// 模拟个nginx配置,将http://xxx-api.com/api/代理到别的服务器
location /api/ {
proxy_pass xxxxx;
}
这里有一个站内文章
跨域解决方案