Chrome 的 bug 还是其他原因?(Dev Tools 不显示 http response body)

2020-04-02 10:06:29 +08:00
 godlovesxcjtest

最近在研究瓜子二手车这个网站, https://www.guazi.com/dezhou/dazhong/ 发现一个令人头疼的事:

  1. 初次访问这个网站时,会返回 http 203,同时还返回一个混淆过的脚本,这个脚本用来生成 cookies 参数,同时,这个脚本还会再次访问请求网址,并携带 cookie 参数,此时 http code 是 200,并且正常返回内容了,如下图,有两个请求,一个是 200,另一个是 203
  2. 我用 Chrome 抓包发现,第一个请求 的 http response 中显示没有数据,但是我用 burpsuite 抓包确可以看到 body 中返回了这个脚本

这是 chrome 的 bug,还是因为其他原因呢?

1260 次点击
所在节点    问与答
12 条回复
chanchan
2020-04-02 13:03:57 +08:00
右键 Copy response 看看
godlovesxcjtest
2020-04-02 15:15:59 +08:00
@chanchan #1 还是那样,什么都看不到
sarlanori
2020-04-02 15:26:16 +08:00
我能想到的原因有两个:

1 、返回的数据有问题,比如加密混淆过的,devtools 解不出来
2 、devtools 正在解析的时候发生跳转,导致解析失败

你可以尝试在返回数据的源码那里下断点看看返回结果到底是啥。
sarlanori
2020-04-02 15:29:49 +08:00
@sarlanori 我试了下,我这里是返回正常的。
godlovesxcjtest
2020-04-02 15:39:32 +08:00
@sarlanori #4 您这里可以看到第一个请求返回的脚本?我在网上搜了下,好像有很多人也和我的问题一样,看不到这个响应
godlovesxcjtest
2020-04-02 15:41:04 +08:00
@chanchan #1
@sarlanori #3
试了下,firefox 可以看到,chrome 以及基于 chromium 的 edge 都看不到
cyndihuifei
2020-04-02 15:42:31 +08:00
应该是 chrome 不显示跨域接口的返回值吧?看看接口地址和页面地址是不是跨域
godlovesxcjtest
2020-04-02 15:44:29 +08:00
@cyndihuifei #7 不是跨域
sarlanori
2020-04-02 15:51:47 +08:00
我用的 Linux 下的 Chrome,版本 73.0.3683.86 (正式版本)( 64 位),可以看到结果。
goofool
2020-04-02 16:06:43 +08:00
页面刷新了
SunriseFox
2020-04-02 16:13:07 +08:00
确实有这个问题,原因应该是页面重新加载了所以上一次加载的上下文丢失掉了...
可以在 Event Listener Breakpoint -> Script -> Script First Statement 处加断点,发现脚本调用了 xredirect (实际上是 location.replace ),页面刷新 devtools 就丢弃了上次响应的内容
hronro
2020-04-02 16:13:46 +08:00
存在许久的 BUG 了,我每次都是 COPY AS CURL 然后在 CURL 里面查看

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

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

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

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

© 2021 V2EX