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

服务端返回的 headers, PC 端和移动端打印的结果不一样是啥问题

  •  
  •   jowan · 2018-08-01 21:08:14 +08:00 · 1529 次点击
    这是一个创建于 415 天前的主题,其中的信息可能已经有所发展或是发生改变。

    前端使用 axios 跨域请求 api
    服务端返回结果的时候 header 配置了跨域参数
    并返回了一些自定义 headers 如 Authorization、Client-Id 等
    电脑端调试时 可以打印这些 response 的 headers 参数
    唯独手机端的 safari、chrome 均无法获取
    打印只有 content-type、cache-control
    但两者的 response.data 的数据都是正常的

    PC 端 response.headers

    此处输入图片的描述

    手机端的 response.headers

    此处输入图片的描述

    请教下这是什么原因

    第 1 条附言  ·  2018-08-01 21:43:01 +08:00

    谢谢各位 找到原因了 但是很诡异 PC端不用设置是可以拿到全部headers的

    原因:

    Access-Control-Expose-Headers:该字段可选。CORS请求时,XMLHttpRequest对象的getResponseHeader()方法只能拿到6个基本字段:Cache-Control、Content-Language、Content-Type、Expires、Last-Modified、Pragma。如果想拿到其他字段,就必须在Access-Control-Expose-Headers里面指定。上面的例子指定,getResponseHeader('FooBar')可以返回FooBar字段的值。

    https://www.jianshu.com/p/b0c5865dbda9

    10 回复  |  直到 2018-08-02 13:45:30 +08:00
        1
    misaka19000   2018-08-01 21:13:24 +08:00
    亮代码
        2
    jowan   2018-08-01 21:21:17 +08:00
        3
    misaka19000   2018-08-01 21:26:20 +08:00
    是不是 JS 里面有限制有些 header 不允许拿到?
        4
    jowan   2018-08-01 21:29:55 +08:00
    @misaka19000 关键是手机端和 PC 端的前端代码是一样的 。。
        5
    swcat   2018-08-01 21:37:33 +08:00 via iPhone
    给个调试思路,用 charles 抓包,看抓到的包,判断问题出在哪里,我用跨域也用了蛮久了,貌似没有出现你说的问题,(可能配置不完全一样)可以贴出抓的手机端的包看看

    或者先从简单跨域,一步一步到你的跨域配置,看哪里出问题
        6
    tradzero   2018-08-01 21:37:46 +08:00
    是不是 nginx 的跨域 没写 always
        7
    also24   2018-08-01 21:50:22 +08:00   ♥ 1
    刚想说想起了这篇文章:
    https://juejin.im/entry/5b31bbb251882574c82d9ae9
        8
    jowan   2018-08-01 21:57:47 +08:00
    @also24 其实我设置了 Access-Control-Expose-Headers:*,只不过*在 PC 端有用,在移动端要指定参数
        9
    also24   2018-08-01 21:59:20 +08:00
    @jowan #8
    可能是不同的浏览器的具体实现不同,不过结合那篇文章里引发战争的情况来看,我感觉以后搞东西,header 还是轻一点比较好
        10
    YMB   2018-08-02 13:45:30 +08:00
    没错,是要这样指定,但我印象中如果不指定手机和 pc 都收不到。。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2317 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 20ms · UTC 05:27 · PVG 13:27 · LAX 22:27 · JFK 01:27
    ♥ Do have faith in what you're doing.