项目情况说明:前后端分离形式,
前端:VUE
后端单独的:java spring boot
问题描述:项目部署好后(nginx),在访问网站时,显示接口状态为200 成功,但是respone中没有任何返回值,并且单独那接口访问显示200并且有返回值,同时去查看nginx的access.log发现也显示200?不知道什么原因?
1、排查了接口本身无问题,正常访问,可中重启服务,就是不行
2、排查nginx日志,未报错
3、查看console日志发现有错误提示跨域问题,但是问后端人员说程序未做任何更改,其他部署可正常访问
4、排查浏览器接口Headers中的Request Method:IPTIONS ,发现原来可正常访问的显示为GET,发现了区别
5、百度Request Method:IPTIONS 代码中调用为GET,找到了解决方案,需要在nginx中配置跨域设置
解决方法:
打开nginx的配置文件,找到后端代理配置,增加如下内容:
//指定允许其他域名访问
'Access-Control-Allow-Origin:*'//或指定域
//响应类型
'Access-Control-Allow-Methods:GET,POST'
//响应头设置
'Access-Control-Allow-Headers:x-requested-with,content-type'
重新启动nginx Request Method:GET,STATUS:200,RESPONE:有值返回。
问题解决。yeah.
这个问题真的困扰了好久,郁闷,但是解决了,希望能给遇到同样问题的人给到帮助。
程序员为了解决一个bug真是头发变少了。哈哈。
网友评论