服务器不支持PUT和DELETE请求处理

avatar
作者
猴君
阅读量:1

在生产中遇到个问题,用户服务器转发不支持PUT请求和DELETE请求,这是什么鬼问题,查阅了下资料,PUT请求和DELETE请求被认为是不安全的,所以没办法,必须得处理这种情况

问题处理

前端处理和nginx处理,前端axios实例将PUT和DELETE请求改为POST请求,并设置特殊请求头标志,在nginx中判断设置请求标志

前端axios处理 

//判断下当前主机环境是否需要替换put和delete请求  if(window.location.host == "xxx"){     const method = config.method.toUpperCase()      if(method== "PUT" || method == "DELETE"){         // 改写post请求         config.method = "post"         // 添加请求标志         config.headers['X-HTTP-Method-Override']=method     }   }  

nginx配置 

在server块配置和location块配置即可,

注意:如果配置指令不能复制需要手敲的时候,重启的时候出现未知指令,并且其他都没有问题的情况下,注意检查下if后边的空格(if 后边要有空格),这大坑,排查了半天

set $method $request_method; if ($http_X_HTTP_Method_Override ~* 'PUT|DELETE') { 	set $method $http_X_HTTP_Method_Override; } proxy_method $method; 

 

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!