nginx如何解决跨域问题?

关于跨域问题一般都是出现在接口上,比如本地开发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;
}
阅读 3.2k
3 个回答

先去下载一个nginx
以下这是配置说明

clipboard.png

这样的逻辑

当你你的请求发送---- --nginx拦截你的请求-----nginx代替你去请求你所请求的服务器------nginx拿到响应数据-----nginx把数据给到你
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏