农民 发表于 2024-8-13 06:51:04

服务器不支持PUT和DELETE请求处置惩罚

在生产中遇到个问题,用户服务器转发不支持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企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 服务器不支持PUT和DELETE请求处置惩罚