怎样通过nginx配置实现前后端分离?

快进小树林 2017-08-16 12:36:23
我前端页面是这个(纯静态页面):
http://192.168.0.138:8020/ship/ship-prototype/website/page/shipBaseData/adm-bdl.html
后台接口是这个:
http://192.168.0.138:8080/ship-manager/dept/all
单纯的调用ajax会出现跨域问题,这种情况网上说可以通过nginx反向代理解决,但是我不知道怎么配置,这个是我的配置:
server {
listen 8888;
server_name 192.168.0.138;
location / {
proxy_pass http://192.168.0.138:8020/;
}

location /ship-manager/ {
# 把 /api 路径下的请求转发给真正的后端服务器
proxy_pass http://192.168.0.138:8080/ship-manager/;
}
但是我发现这样并没有用,希望大神指点迷津
...全文
2457 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
强本强见闻 2019-10-24
  • 打赏
  • 举报
回复
Nginx+tomcat 实现前后端分离(解决跨域) 可以看下这篇:https://blog.csdn.net/gzseehope/article/details/82319441#comments
引用 8 楼 星辰夜空中 的回复:
[quote=引用 7 楼 chenzhiyong12 的回复:] 抱歉,该结帖了,最后还是后台配置可跨域访问处理了
怎么搞的!能把代码粘出来看看吗[/quote]
双木林L 2017-12-13
  • 打赏
  • 举报
回复
引用 7 楼 chenzhiyong12 的回复:
抱歉,该结帖了,最后还是后台配置可跨域访问处理了
怎么搞的!能把代码粘出来看看吗
快进小树林 2017-11-26
  • 打赏
  • 举报
回复
抱歉,该结帖了,最后还是后台配置可跨域访问处理了
赵忠洋 2017-10-12
  • 打赏
  • 举报
回复
http{ server { #配置端口号 listen 9999; #配置server_name server_name 127.0.0.1; #设置默认页面 地址为webpack-devserver地址 location = / { proxy_pass http://127.0.0.1:8888/#/home; } #这里因为我的的vue-router 所以将带#号的请求转发到本地服务器 location ~ .*#.*$ { proxy_pass http://127.0.0.1:8888; } #请求网页 图片 icon 等都会转发到本地服务器上 location ~ .*\.(js|css|htm|html|gif|jpg|jpeg|png|bmp|swf|ico|rar|zip|txt|flv|mid|doc|ppt|pdf|xls|mp3|wma|eot|woff|ttf|svg)$ { proxy_pass http://127.0.0.1:8888; } #请求后端接口的服务器地址 location ~ .*$ { proxy_pass http://10.10.1.135:8080; } } }
赵忠洋 2017-10-12
  • 打赏
  • 举报
回复
我之前写过一篇博客,或许可以帮助你 http://blog.csdn.net/qq_32930863/article/details/77164738
快进小树林 2017-08-17
  • 打赏
  • 举报
回复
引用 2 楼 showbo 的回复:
nigix不会,你可以用下面2种方法,第一种兼容行最好但是不不支持post请求 http://192.168.0.138:8080/ship-manager/dept/all 改下这个借口返回jsonp数据,就是一段js代码,格式一般就是 回调函数名(数据) 这种格式,不过jsonp一般是get请求,不支持post请求 要支持post请求,那个接口添加Access-Control-Allow-Origin响应头允许执行域名跨域请求,但是这个ie兼容性不好,ie跨域对象是XDomainRequest,需要自己做兼容处理 通过Access-Control-Allow-Origin控制允许ajax跨域请求的域名 推荐学习资料 jqGrid中文API jquery全年日期选择器日历插件
现在只能设置响应头了
快进小树林 2017-08-17
  • 打赏
  • 举报
回复
引用 1 楼 hongmei85 的回复:
调用ajax的时候用jsonp的方式,什么都不用改也可以解决跨域问题
这个不支持post方法。。。
Go 旅城通票 2017-08-16
  • 打赏
  • 举报
回复
nigix不会,你可以用下面2种方法,第一种兼容行最好但是不不支持post请求 http://192.168.0.138:8080/ship-manager/dept/all 改下这个借口返回jsonp数据,就是一段js代码,格式一般就是 回调函数名(数据) 这种格式,不过jsonp一般是get请求,不支持post请求 要支持post请求,那个接口添加Access-Control-Allow-Origin响应头允许执行域名跨域请求,但是这个ie兼容性不好,ie跨域对象是XDomainRequest,需要自己做兼容处理 通过Access-Control-Allow-Origin控制允许ajax跨域请求的域名

推荐学习资料
jqGrid中文API
jquery全年日期选择器日历插件
hongmei85 2017-08-16
  • 打赏
  • 举报
回复
调用ajax的时候用jsonp的方式,什么都不用改也可以解决跨域问题

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧