PUT和DELETE部署在内网服务器后 外网无法请求的问题

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

PUT和DELETE部署在内网服务器后 外网无法请求的问题

这问题困扰我好几天本身就不是搞运维的且实习时长 俩年半 半年的小辣鸡 被赶鸭子上架

系统部署在甲方的内网服务器里然后他们通过VLAN穿透到外网访问我也听不懂是什么意思

系统部署在内网服务器后登录上去康康发现在外网情况下有些接口可以使用有些不能使用

报错一直都是500

错误都是 500 ,百思不得其解遂于晚上问了师兄然后排查出问题可能是存在服务器那边不接收PUT和DELETE的请求的情况

在控制台的Network中发现post和get请求完全可以而PUT和DELETE请求一直报500

隔天找了甲方管理服务器的人说明了一下情况他们居然问我什么是PUT和DELETE

本因昨晚找到可能原因的好心情在这一瞬间裂开。

无奈之下只能在百度看看有什么解决方法

随后就发现了这篇文章 https://blog.csdn.net/weixin_45552405/article/details/121905843

在这里插入图片描述

直接开始动手尝试

在内网服务器的nginx的server中填加了以下的东西

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

开始修改前端代码

将所有 delete 和 put 接口都改成 post
然后在对应的请求上加上 原本是PUT就加PUT
HeaderX-HTTP-Method-Override: PUT

HeaderX-HTTP-Method-Override: DELETE

看个人项目请求的方式去添加哈以下作为参考

put请添加图片描述

delete

请添加图片描述

修改好后开始测试
在Request Headers中有了 X-HTTP-Method-Override: PUT 原本PUT的请求变成了POST而且能够成功去访问修改数据

Request Headers

请添加图片描述

POST请求成功

在这里插入图片描述

然而DELETE出了问题还是无法调用到接口
疯狂看 NetWork看看到底问题在哪里
发现是参数出了错误

DETELE接口下参数为 Query

请添加图片描述

而修改成POST时参数变成了 Body

请添加图片描述

修改一下对应的接口参数就OK了

下面是我对这个解决方法的理解

请添加图片描述

文章最后感谢一下帮助我的朋友以及引用文章的大佬

如果遇到相同问题希望这篇文章能够帮助到你

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: 服务器