服务器没有放开了PUT DELETE请求,需要前端添加header,nginx也需要配置

将前端代码中的

method: 'put' 替换为
method: 'post',
myType: 'put'
替换 method: 'delete' 为
method: 'post',
myType: 'delete'

并更改 /src/utils/request.js 拦截请求,添加header

-----------------------------------------------------------------------------------------------------------------------

// request拦截器
service.interceptors.request.use(config => {
.........
    //为 method 原来为 put 和 delete 的请求,添加http头信息
    if (config.myType === 'delete') {
      config.headers['X-HTTP-Method-Override'] = 'DELETE'
    }
    if (config.myType === 'put') {
      config.headers['X-HTTP-Method-Override'] = 'PUT'
    }

服务器根据Header:X-HTTP-Method-Override,转换请求method
或在nginx层修改和转发,服务端不需要做任何处理即可,参考配置

#在nginx的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;

最后一种可能tomcat 8以上不支持PUT DELETE,rest风格的api更适合将打包方式改成 jar,直接运行,目前看来第三种最有效。pom.xml修改打包方式为jar 终端运行命令:
nohup java -jar your_project.jar > your_project.log 2>&1 &

  • 11
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值