问个 axios 跨域的问题,求大神们解答。

2018-02-22 10:37:49 +08:00
 LeungJZ

jQuery 访问没有问题的,axios 就有问题了。

这是代码:

这是 chrome 中执行的结果:jQuery 访问没有问题的,axios 就有问题了。

2354 次点击
所在节点    前端开发
7 条回复
viko16
2018-02-22 10:51:47 +08:00
这里是两个问题:

1. 写法问题

$.ajax 应该是 $.ajax({ xhrFields: { withCredentials: true }});

http://api.jquery.com/jquery.ajax/

所以你认真看一下 jQuery 发起的请求应该是没带上 Cookies 的


2. axios 的用法是对的,但是跨域带 Cookie 的时候,Access-Control-Allow-Origin 不能用星号
LeungJZ
2018-02-22 11:16:04 +08:00
@viko16
但是这里 cookie 可以不带,因为在 Authorization 中带上了 token,现在就是不知道如何解决 axios 的跨域问题。
wxsm
2018-02-22 11:18:42 +08:00
这个报错信息已经很明确了。
huijiewei
2018-02-22 11:19:03 +08:00
@LeungJZ 不需要带 cookie 就把 withCredentials 设为 false
LeungJZ
2018-02-22 11:39:18 +08:00
@huijiewei
我 TM。。。。。好吧,谢谢了,确实设置为 false 就可以了。。。我还以为这个是跨域必须的。。。谢谢。


@wxsm
谷歌了很久,发现好像是 withCredentials 的问题,很多都是回复说是 Access-Control-Allow-Origin 的问题。 #4 已经帮我解答了,同时也感谢你的回答。
fyh1807008
2018-02-22 11:39:40 +08:00
Authorization 是自定义 header,Access-Control-Allow-Origin 不能用星号
chen90902
2018-02-23 07:59:01 +08:00
携带 cookie 的请求, Access-Control-Allow-Origin 不能设置为*

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/431584

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX