vue部署到nginx后 Request Method: OPTIONS

新手上路,请多包涵
  1. vue项目部署到线上服务器,使用nginx成功启动页面都能正常访问。
  2. springboot的后台服务放到了同一个服务器,也是正常启动,全部是RESTful形式。
  3. 线下的VUE项目连接线上后台服务一切正常,不是后台设置的问题。

问题:
线上vue向后台发送delete请求的时候,变成了“Request Method: OPTIONS”
百度了各种nginx的配置都不能用。
有没有遇见过同样问题并解决了朋友,帮忙给个有效的解决方案!

阅读 4.5k
2 个回答
新手上路,请多包涵

hi, 你好

在发送DELETE请求之前,浏览器会先发送OPTIONS请求给后端以检测是否允许客户端发送DELETE请求。所以你只需要在SpringBoot中处理一下对应的OPTIONS请求即可,应该不是nginx的关系。

跨域资源共享 CORS 详解
options预检请求- HTTP | MDN

新手上路,请多包涵

问题解决了,虽然还没搞清楚原理为何,不是nginx的配置问题。
在后台`
doFilterInternal

response.setHeader("Access-Control-Allow-Headers", "X-Requested-With, Accept, Content-Type,Authorization");
//        response.setHeader("Access-Control-Allow-Methods", "GET, POST,OPTIONS");
        response.setHeader("Access-Control-Allow-Methods", "GET, POST,OPTIONS, PUT, DELETE");
        String origin = request.getHeader("Origin");
        response.setHeader("Access-Control-Allow-Origin", "*");
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题