ruoyi若依前后端分离项目部署到服务器后,PUT DELETE请求403错误,GET POST请求正常

后端打包方式war,部署到tomcat8, PUT DELETE请求报403错误,网上有三种说法

第一种是跨域请求问题

WebMvcConfigurer中修改
@Override
    public void addCorsMappings(CorsRegistry corsRegistry){
        /**
         * 所有请求都允许跨域,使用这种配置就不需要
         * 在interceptor中配置header了
         */
        corsRegistry.addMapping("/**")
                .allowCredentials(true)
                .allowedOriginPatterns("*")
                .allowedMethods("POST", "GET", "PUT", "OPTIONS", "DELETE")
                .allowedHeaders("*")
                .maxAge(3600);
    }

第二种是服务器没有放开了PUT DELETE请求,需要前端添加header

ruoyi vue 自动生成代码PUT DELETE为http不安全方法,这个怎么解决安全问题 · Issue #I43AX6 · 若依/RuoYi-Vue - Gitee.com

用域名访问接口, get和post请求均正常,而put和delete请求均无法正常使用_相约黄昏后007的博客-CSDN博客

将前端代码中的

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;
        
    location / { 
		......

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

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
若依框架的前后端分离项目部署可以按照以下步骤进行: 1. 下载前后端分离版本:你可以从若依框架的官方网站(https://gitee.com/y_project/RuoYi-Vue)下载前后端分离版本的代码。 2. 部署后端:将下载的后端代码部署到你的服务器上。若依框架的后端采用Spring Boot和Spring Security,你需要确保你的服务器上已经安装了Java环境,并且配置好了数据库等相关环境。 3. 配置后端:在部署后的后端代码中,你需要根据你的实际情况进行一些配置,例如数据库连接配置、权限认证配置等。具体的配置方式可以参考若依框架的官方文档或者代码中的注释。 4. 构建前端:将下载的前端代码使用npm或者yarn等工具进行构建。在构建之前,你需要确保你的服务器上已经安装了Node.js和相关的包管理工具。 5. 部署前端:将构建后的前端代码部署到你的服务器上。你可以将前端代码部署到任意的静态文件服务器上,例如Nginx、Apache等。 6. 配置前端:在部署后的前端代码中,你可能需要根据你的实际情况进行一些配置,例如后端接口的地址等。具体的配置方式可以参考若依框架的官方文档或者代码中的注释。 7. 启动项目:在完成以上步骤后,你可以启动你的前后端分离项目了。你可以访问前端页面,通过前端页面与后端进行交互。 请注意,以上步骤仅为一般的部署流程,具体的部署方式可能会因为你的实际情况而有所不同。建议你参考若依框架的官方文档或者向若依框架的开发者寻求帮助以获取更详细的部署指导。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值