jowan
V2EX  ›  PHP

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

  •  
  •   jowan · Aug 1, 2018 · 4031 views
    This topic created in 3022 days ago, the information mentioned may be changed or developed.

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

    PC 端 response.headers

    此处输入图片的描述

    手机端的 response.headers

    此处输入图片的描述

    请教下这是什么原因

    Supplement 1  ·  Aug 1, 2018

    谢谢各位 找到原因了 但是很诡异 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 replies  •  2018-08-02 13:45:30 +08:00
    misaka19000
    misaka19000
    Aug 1, 2018
    1
    亮代码
    misaka19000
    misaka19000
    Aug 1, 2018
    3
    是不是 JS 里面有限制有些 header 不允许拿到?
    jowan
    jowan
    OP
    Aug 1, 2018
    4
    @misaka19000 关键是手机端和 PC 端的前端代码是一样的 。。
    swcat
    swcat
    Aug 1, 2018 via iPhone
    5
    给个调试思路,用 charles 抓包,看抓到的包,判断问题出在哪里,我用跨域也用了蛮久了,貌似没有出现你说的问题,(可能配置不完全一样)可以贴出抓的手机端的包看看

    或者先从简单跨域,一步一步到你的跨域配置,看哪里出问题
    tradzero
    tradzero
    Aug 1, 2018
    6
    是不是 nginx 的跨域 没写 always
    also24
    also24
    Aug 1, 2018❤️1
    7
    刚想说想起了这篇文章:
    https://juejin.im/entry/5b31bbb251882574c82d9ae9
    jowan
    jowan
    OP
    Aug 1, 2018
    8
    @also24 其实我设置了 Access-Control-Expose-Headers:*,只不过*在 PC 端有用,在移动端要指定参数
    also24
    also24
    Aug 1, 2018
    9
    @jowan #8
    可能是不同的浏览器的具体实现不同,不过结合那篇文章里引发战争的情况来看,我感觉以后搞东西,header 还是轻一点比较好
    YMB
    YMB
    Aug 2, 2018
    10
    没错,是要这样指定,但我印象中如果不指定手机和 pc 都收不到。。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1128 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 23:18 · PVG 07:18 · LAX 15:18 · JFK 18:18
    ♥ Do have faith in what you're doing.