今天小编给大家分享一下nginx跨域问题如何解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
公司主营业务:成都网站设计、成都网站制作、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。成都创新互联公司是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。成都创新互联公司推出宁强免费做网站回馈大家。
前后端分离,使用nginx解决跨域问题
前端:vue.js+nodejs+webpack
后台:springboot
反向代理服务器:nginx
思想:将前端代码打包,让nginx指向静态资源,nginx对后台请求进行转发。
1、将前端代码打包:
npm run build
会生成一个dist文件夹。包含一个index.html文件和一个static文件夹,路径以我本地为例:
/users/xxx/ideaprojects/webtest/dist
2、打开
/usr/local/etc/nginx目录下的nginx.conf,在server中添加如下:
listen 80; #原为8080,避免冲突,更改为80 server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { root /users/xxx/ideaprojects/webtest/dist; index index.html; # 此处用于处理 vue、angular、react 使用h5 的 history时 重写的问题 if (!-e $request_filename) { rewrite ^(.*) /index.html last; break; } } # 代理服务端接口 location /api/ { proxy_pass http://localhost:8080/;# 代理接口地址 }
测试
前端发送请求:http://localhost/test ,vue-router将其重定向为http://localhost/api/demo/1,实际访问是http://localhost:8080/demo/1。
直接向后台发送请求:访问http://localhost/api/demo/1,实际访问是:http://localhost:8080/demo/1
内容扩展思考:
1).
# 代理服务端接口
location /api/ { proxy_pass http://localhost:8080/;# 代理接口地址 }
代理接口地址只到8080,那么他会自动将后台项目的名称加上??? 比如接口是http://148.70.110.87:8080/项目名称/方法名称 。。。
2).js 中是这样请求的 ,nginx是按照您上面的配置,但是请求出错http://148.70.110.87/api/index2 404 (not found)
axios.post('/api/index2') .then( (response) =>{ console.log(response); }) .catch( (error)=> { console.log(error); });
3).第三个步骤,测试,实在看不懂要是能有相关的代码就好了
以上就是“nginx跨域问题如何解决”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注创新互联行业资讯频道。
当前名称:nginx跨域问题如何解决
文章地址:http://lswzjz.com/article/pgjpho.html