V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
LeungJZ

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

  •  
  •   LeungJZ ·
    JZLeung · Feb 22, 2018 · 3007 views
    This topic created in 2998 days ago, the information mentioned may be changed or developed.

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

    这是代码:

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

    7 replies    2018-02-23 07:59:01 +08:00
    viko16
        1
    viko16  
       Feb 22, 2018   ❤️ 1
    这里是两个问题:

    1. 写法问题

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

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

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


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


    @wxsm
    谷歌了很久,发现好像是 withCredentials 的问题,很多都是回复说是 Access-Control-Allow-Origin 的问题。 #4 已经帮我解答了,同时也感谢你的回答。
    fyh1807008
        6
    fyh1807008  
       Feb 22, 2018
    Authorization 是自定义 header,Access-Control-Allow-Origin 不能用星号
    chen90902
        7
    chen90902  
       Feb 23, 2018 via Android
    携带 cookie 的请求, Access-Control-Allow-Origin 不能设置为*
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3044 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 57ms · UTC 14:01 · PVG 22:01 · LAX 07:01 · JFK 10:01
    ♥ Do have faith in what you're doing.