【已解决】Allow-Origin‘ header is present on the requested resource.Error in v-on handler (Promise/async

项目场景:

今天在写vue加springboot技术编写前后端分离项目过程中出现了跨域问题,然而也花费了一些时间去找解决方法,csdn上面的大佬只能说太强了,虽然说的都挺有道理的,但是终究还是太弱了看不懂,后来自己琢磨了以下,想了想会不会是后端跨域请求出现了问题。
在这里插入图片描述

在这里插入图片描述

问题描述:

Access to XMLHttpRequest 
at 'http://localhost:9000/userstate?id=1&state=true' f
rom origin 'http://localhost:8080' has been blocked 
by CORS policy: No 'Access-Control-Allow-Origin'
 header is present on the requested resource.
found in

---> <ElSwitch> at packages/switch/src/component.vue
       <ElTableBody>
         <ElTable> at packages/table/src/table.vue
           <ElCard> at packages/card/src/main.vue
             <UserList> at src/components/admin/UserList.vue
               <ElMain> at packages/main/src/main.vue
                 <ElContainer> at packages/container/src/main.vue... (1 recursive calls)
                   <Home> at src/components/Home.vue
                     <App> at src/App.vue
   
                       <Root>
                       Error: Request failed with status code 400
    at createError (createError.js?2d83:16)
    at settle (settle.js?467f:17)
    at XMLHttpRequest.handleLoad

原因分析:

跨域请求出现了问题,代码肯定有问题,需要改动。

解决方案:

后来我找到了 java后台 util包下的WebConfig配置类

在这里插入图片描述
在这里插入图片描述

找到了跨域的方法,果然没有加put 请求方式。

 @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
                .allowedOrigins("Http://localhost:8080","null")
                .allowedMethods("GET","POST","OPTION","DELETE")
                .allowCredentials(true)
                .maxAge(3600);
    }

在这里插入图片描述
于是乎问题得以解决。前端vue 中也实现了相应的变化
在这里插入图片描述
成功的修改了状态,实现了数据库的交互。

总结

一般跨域问题都应该检查一下自己前后端分离的项目中后台 的代码问题,看看是不是 @Configuration 配置类没有写还是 addCorsMappings方法中 请求方式没有写全。再或者 是 @CrossOrigin 注解 写错位置了。

反正我是这样解决的,你的错误解决了吗?

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值