为什么使用了koa2-cors前端访问接口时还是跨域呢,难道是前端的问题?前端需要注意哪些呢?

为什么使用了koa2-cors前端访问接口时还是跨域呢,难道是前端的问题?前端需要注意哪些呢?

https://img1.sycdn.imooc.com//climg/61eae2c0091d3be910620538.jpg

https://img1.sycdn.imooc.com//climg/61eae2c109f2e4a420670991.jpg

https://img1.sycdn.imooc.com//climg/61eae2520907879010150220.jpg

https://img1.sycdn.imooc.com//climg/61eae3730996802e19831009.jpg

https://img1.sycdn.imooc.com//climg/61eae37309f91bfd24071426.jpg

老师帮忙看看,顺序可能有些问题

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕久久 2022-01-22 10:31:03

同学你好,正常来讲,只要后端设置了cors,前端请求中设置withCredentials为true就可以了。同学这种现象可能和浏览器有关。最新的谷歌等浏览器,不允许前端跨域请求携带cookie,所以即使前端代码中设置了如下属性也没用:

https://img1.sycdn.imooc.com//climg/61eb6b18094325c605780150.jpg

建议换个浏览器试试,比如火狐、360。

跨域问题本质上是没办法通过前端处理的,只能用后端处理。比如配置服务器、更改接口方式(不使用cookie)。我们的课程是基础课,只能讲解cors这种比较好理解的形式。更多方式,需要同学以后自己拓展,但是短时间内应该不会涉及更深的内容,所以建议暂时了解这种处理方式即可。

祝学习愉快!

  • 提问者 母鸡阿 #1

    老师 我换了火狐浏览器还是不行,截图还是上面的截图,2是没调接口之前的,1是调了之后的。依然是跨域,network errorhttps://img1.sycdn.imooc.com//climg/61ebc74709bde29d08170421.jpghttps://img1.sycdn.imooc.com//climg/61ebc71f09c9511f08610974.jpg


    2022-01-22 16:59:26
  • 好帮手慕久久 回复 提问者 母鸡阿 #2

    同学你好,解答如下:

    1、node中配置允许跨域的是localhost:8080,但是火狐浏览器中,项目的地址是localhost:80801,这会造成跨域:

    https://img1.sycdn.imooc.com//climg/61ebd3b609b6591505090087.jpg

    建议把多余的项目关掉,只启动一个localhost:8080试试。

    2、下图中的报错信息才是跨域:

    https://img1.sycdn.imooc.com//climg/61ebd3e3091450e109360122.jpg

    火狐截图中老师并没有看到跨域报错。404报错是“xxx找不到”:

    https://img1.sycdn.imooc.com//climg/61ebd41e090b6e9106560134.jpg

    同学项目中请求的接口是localhost:8081/undefined,建议检查这个接口的代码,将接口修改正确后,再测试。

    祝学习愉快!

    2022-01-22 18:28:22
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师