欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 创投人物 > vue3delete请求报403forbidden,前后端解决方式

vue3delete请求报403forbidden,前后端解决方式

2024/10/24 12:25:35 来源:https://blog.csdn.net/weixin_42738354/article/details/139648590  浏览:    关键词:vue3delete请求报403forbidden,前后端解决方式

在做开发时,前期已经在Controller类加上@CrossOrigin(origins = "*"),发送get和post请求都没问题,但遇到delete请求时,又报出跨域问题

一.前端添加proxy代理服务器(未能解决)

在vue.config.js中使用devServer配置代理,在文件中添加

devServer:{proxy:{"/api":{target:"http://localhost:9998",changeOrigin: true,pathRewrite:{"^/api": ""},}}}

然后在你的axios配置文件中将baseURL改成

const API = axios.create({baseURL:'/api', timeout: 2000                  
})

这是因为proxy中设置了target,则此时请求地址变为http://localhost:9998/api
但同时在proxy中添加了pathRewrite属性,它是一个正则表达式,匹配/api并替换为“”(空字符串),所以实际请求地址依然为http://localhost:9998/接口名称
使用proxy代理服务器的目的是:
解决跨域问题,我们的前端项目和代理服务器有相同的端口,访问代理服务器不存在跨域问题,然后由代理服务器去访问target目标地址。

二.后端重写addCorsMappings跨域方法(成功)

我这里是在src文件夹下,新建了config文件夹,创建了MyConfiguration类实现了WebMvcConfigurer,具体如下:

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;@SuppressWarnings("deprecation")
@Configuration
public class MyConfiguration implements WebMvcConfigurer {@Overridepublic void addCorsMappings(CorsRegistry registry) {registry.addMapping("/**").allowedMethods("GET","POST","DELETE","PUT","OPTIONS") //允许的请求类型//允许携带头信息(该处为所有头信息,可根据自己的需求修改).allowedHeaders("*").allowedOrigins("*").maxAge(3600);}
}

在后端重写addCorsMappings方法成功解决了delete的跨域问题

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com