跨域问题

问题场景

在使用panjiachen的开源前端项目时出现以下问题:

[WDS] Disconnected!

已拦截跨源请求:同源策略禁止读取位于 http://localhost:8001/serviceedu/login 的远程资源。(原因:CORS 请求未能成功)。状态码:(null)。

errError: Network Error

发现是跨域问题

但我在java的控制器的地方已经添加了@CrossOrigin,但依然出现跨域问题

解释一下跨域问题

http://192.168.1.1:8001(协议://ip地址:端口号)

当前端的这三部分请求后端的这三部分时,如果有一处不一样,那么就会出现跨域问题

原因:出现跨域的原因是为了安全问题,浏览器所做出的限制

解决方法:

①直接在类的上边加注解@CrossOrigin//允许跨域访问

②基于原因,我们可以不通过浏览器使用httpclient直接访问接口来解决跨域问题

思路

想了半天,思考应该加上注解后就能解决,但是为啥不行呢?从网上搜了半天,说可用看看自己的配置信息是否出现问题,但我想,我刚开始项目,配置应该没有问题

再思考

它说与http://localhost:8001/serviceedu/login存在同源问题,那我用curl请求一下看看(因为我集成了swagger,所以此处我用了swagger,如果没有你可以使用curl发出post或get请求)

发现了以下问题

http://localhost:8001/serviceedu/login

http://localhost:8001/serviceedu/user/login

 我套它猴子的,地址都不一样,肯定不行啊,前端少写了 /user

解决

前端请求地址加上/user即可

注意:一定要小心点啊

 

 

 

 

 

posted @ 2023-11-09 00:16  Mrzxs  阅读(8)  评论(0编辑  收藏  举报