首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  程序员

一个奇怪的跨域问题

  •  
  •   molvqingtai · 171 天前 · 1982 次点击
    这是一个创建于 171 天前的主题,其中的信息可能已经有所发展或是发生改变。
    前端跨域请求后台接口遇到这么一个奇怪的问题

    当我从代码里面发出跨域请求时 Status Code: 200,但是没有返回值

    Response Headers



    返回值为空



    但是我新建一个 html 文件或是直接在控制台发送跨域请求,可以收到返回值
    然后自己起一个 node 服务测试也可以收到返回值

    Response Headers



    有返回值


    通过比较我发现后端给我的接口 Response Headers 里面只有两个字段
    但是令我疑惑的是,既然后端的配置有问题,为什么我直接在当前应用的控制台或新建 html 发送的发跨域请求却可以收到返回值,而我写在逻辑代码里面的请求却没有返回值?
    13 回复  |  直到 2019-04-01 19:55:11 +08:00
        1
    hlwjia   171 天前 via iPhone
    首先代码发请求是什么意思?新建 html 发请求又是什么意思?区别是什么?

    然后出不一样的返回不是应该看看你请求发出去的是什么内容吗?

    你光比人家返回来的内容干嘛?
        2
    zhoufenfens   171 天前 via Android
    后端设置判断的条件不同。一个是具体域名,一个是星号
        3
    gbin   171 天前 via Android   ♥ 2
    因为你的逻辑请求属于复杂请求,复杂请求跨域时会先发送 OPTIONS 预检请求,该请求没有内容返回,之前写过一篇类似博客,可以参考一下,https://0x400.com/2017-08-02-frontend-learn-about-cros.html

    写作水平有限,文中有参考,可以直接看参考。
        4
    deepdark   171 天前 via Android
    这个 200 但是没有返回值的请求是 OPTIONS,相当于探路的
        5
    TomVista   171 天前
    post + json 的请求 是一个复杂请求,包含一个 options 一个 post,复杂请求的 allow-origin 必需指定域名,不能用*号.
        6
    xingwing   171 天前
    加这个试试:dataType:'json',
        7
    molvqingtai   171 天前
    @hlwjia 可能是我描述不清楚,就是我同一段请求代码我写在逻辑里面的时候,收不到返回值,粘贴再控制台却可以发送,发送的字段当然相同
        8
    50infivedays   171 天前
    你没有理解跨域的原理
    跨域是浏览器行为 ,你直接去请求根本不会触发跨域
    当你在代码中的时候 浏览器才会真正的触发跨域,跨域的流程是先发 preflight 的 options 请求,这个请求没有业务意义,只是询问服务端是否允许跨域
    之后如果浏览器觉得满足条件,才会发起真正的请求
        9
    molvqingtai   171 天前
    谢谢大家,我把自己 node 的响应头配置复制给菜鸡后端问题解决了
        10
    molvqingtai   171 天前
    @50infivedays 我遇到的是 options 预检请求已通过,第二发出的请求没有返回值
        11
    xiaoxiuaoliang   171 天前 via Android
    @molvqingtai 所以根本原因是?
        12
    no1xsyzy   171 天前
    @xiaoxiuaoliang 无 CORS 头,应该是遭遇了不符合跨域导致的 downgrade,请求头被阉了。
        13
    50infivedays   170 天前
    @molvqingtai 这确实很奇怪。。。找到原因了吗
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   4231 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 19ms · UTC 06:10 · PVG 14:10 · LAX 23:10 · JFK 02:10
    ♥ Do have faith in what you're doing.