在生产中遇到个问题,用户服务器转发不支持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;
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |