【问题标题】:Chrome, no response data after OPTIONS request?Chrome,OPTIONS请求后没有响应数据?
【发布时间】:2017-06-29 13:49:43
【问题描述】:

我正在使用 CORS 从 API 中获取一些数据。在一天前推出 Chrome 更新之前,一切都运行良好。

现在,在 OPTIONS 请求之后,后续请求总是返回,但没有响应数据。

如果我快速单击一个按钮两次,它将显示在第二个请求(同一个请求)上,因为它没有进行飞行前呼叫。

我已经重新安装并禁用了所有扩展,不知道这里发生了什么。

还有其他人遇到这种情况吗?

EDIT 请注意,没有响应直接来自开发工具。这只是一个 Ajax 调用。即使它没有显示任何响应数据,它也能正常工作。例如,如果我在代码中执行 console.log(res) 一切都很好。严格来说,Chrome 没有显示任何响应,并且严格遵循 OPTIONS (CORS) 请求。

编辑 另请注意,一切都在 Firefox/Firebug 中正常工作和显示。

编辑 Chrome 版本 56.0.2924.87(64 位)

编辑我只是迷路了。该应用程序运行良好,因此甚至很难知道在哪里进行调试。这似乎发生在 Chrome 弹出绿色更新图标的第二天。在那次更新之后,我看到的是 nil。

我检查了我的一些其他应用程序,实际上它在那里工作!所以我认为这可能与插件/Chrome 的某些组合不能很好地播放有关。我尝试恢复很多版本,但没有运气。奇怪的是它只遵循 OPTIONS 请求。我猜这很简单,比如编码类型,但不知道在哪里。

编辑还尝试跟随这里的一些领导者,但没有运气:View AJAX response content in Chrome developer tools?

编辑我已经能够将其缩小到 vue-resource 插件的问题。与 axios 一起工作正常。小提琴在这里:https://jsfiddle.net/tpnucv5m/

【问题讨论】:

  • 您是否在 devtools 控制台中查看过那里记录的内容?如果您能够发布一些可用于重现问题的代码,它也会有所帮助。
  • 没有响应直接来自开发工具。这只是一个 Ajax 调用。即使它没有显示任何响应数据,它也能正常工作。例如,如果我做一个console.log(res) 这一切都很好。严格来说,Chrome 没有显示任何响应,并且严格遵循 OPTIONS (CORS) 请求。
  • 哪个版本的 Chrome? (请考虑编辑您的问题以添加来自 chrome://chrome/ 的确切版本)
  • 如果您直接请求它而不进行任何 Ajax 调用,输出的请求返回什么,返回的响应代码是什么。如果 OPTIONS 请求返回 204,则响应将为空。
  • 我已经设法将其缩小到 vue-resource 插件。与 adxos 配合得很好,你可以在这里查看我的小提琴。 jsfiddle.net/tpnucv5m@nolan-lawrence

标签: google-chrome cors


【解决方案1】:

在模块更新之前,快速解决方法是在dist/vue-resource.common.js 中注释掉这一行:

xhr.responseType = 'blob';

它应该在 ~1054 行附近

【讨论】:

  • 这对我有用。等待模块更新以进行正确修复。
  • 这似乎是答案。我已经与 pagekit 的家伙创建了一个问题,但不确定这是否已经实现。 github.com/pagekit/vue-resource/issues/566
【解决方案2】:

我知道这不是解决方案(请勿投票),但请右键单击 OPTIONS XHR 和 REPLAY XHR。它将重新发送 Ajax 调用,现在会有答案。

我认为插件存在一些异步问题。

【讨论】:

  • 很好,还有“复制为卷曲”选项,然后粘贴到命令行。
猜你喜欢
  • 2018-07-30
  • 1970-01-01
  • 1970-01-01
  • 2012-08-09
  • 2020-04-28
  • 2019-05-09
  • 2014-09-07
  • 1970-01-01
相关资源
最近更新 更多