我正在使用 Windows 10。当我打开 Chrome devtools、转到 XHR 请求并单击标头时,我只看到以下三件事:
知道为什么我在任何地方都看不到请求负载吗?我使用的是 Chrome 版本 65.0.3325.162(官方版本)(64 位)。以下是我的请求标头(URL 匿名化为“示例”):
Accept: */*
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9
Connection: keep-alive
Content-Length: 231
Content-Type: application/json
Host: example.com
Origin: http://localhost:9000
Referer: http://localhost:9000/example
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.162 Safari/537.36
我想知道这是否是导致这种gzip, deflate
情况的原因Accept-Encoding
。或者这是 Chrome 错误?
更新: 不管怎么说,我注意到这些有问题的请求的“类型”是json
。通常,在其他地方,在其他 Ajax 驱动的 Web 应用程序中,它是xhr
。我猜这就是问题所在。所以问题是,这是 Chrome 错误还是 Chrome 功能?
答案1
如果您的表单设置了enctype="multipart/form-data"
,那么 Chrome 将无法捕获请求负载。
<form action="" method="POST" enctype="multipart/form-data">
</form>
答案2
啊,我明白了。此应用程序使用 Aurelia,此提交修复了此问题:https://github.com/aurelia/fetch-client/commit/03ae35f507464d5532e8b31011014b3040e594e3
总结:
Blob 会掩盖 Chrome 开发工具等中的 JSON,因此我们将停止将它们用于 JSON。
这就是问题所在!