【问题标题】:Angular JS with CORS has OPTIONS request pending forever带有 CORS 的 Angular JS 的 OPTIONS 请求永远挂起
【发布时间】:2014-09-28 06:40:10
【问题描述】:

我已经使用 angular 有一段时间了,现在我部署了两个相对较大的项目,遇到了一个奇怪的问题。有时 OPTIONS 请求会永远停留在挂起状态,从而阻止代码流到下一个过程。这是随机发生的,我登录,到处乱跑,然后突然出现问题。

这是带有待处理请求的 chrome 行。

提前感谢您的合作。

-- 更多信息--

我在后端使用 Silex。屏幕截图中的这个调用,有时有效,有时无效,所有 URL 都是如此,它们会随机卡住..

【问题讨论】:

  • 你的服务器 API 是否真的收到了 OPTIONS 请求?如果它正在接收请求,它是否正确回复?
  • 是的,它以正确的标题回复,回复的内容是:“OK”和状态码200。
  • 我注意到您的示例屏幕截图在网址中有一个“:”。正常工作的网址也有吗?
  • 是的,这不是问题 :) 顺便提一下,这个 URL 有时可以工作,同一个 URL 会随机工作并停止工作..
  • 你有没有想过@GuilhermeHenriqueOliveira?

标签: javascript angularjs http cors


【解决方案1】:

您的 OPTIONS 响应应该是 204(而不是 200)。还要确保响应正文中没有内容。

【讨论】:

  • 实际上没有 RFC 指定我应该返回哪个状态码,并且在一个简单的搜索中,我看到了很多合理的参数来避免没有内容的 204 状态。这不是问题...
  • @GuilhermeHenriqueOliveira 你真的试过了吗?可悲的是,仅仅因为规范说了什么并不意味着浏览器尊重它。我在生产中成功使用了 204 OPTION 无内容。无论如何,如果您想获得好的答案,您可能需要提供更多信息(如尽可能多的标题信息)。调试这些东西可能非常棘手。
  • 不幸的是不起作用..它仍然有问题,很多 OPTIONS 请求卡住了...我把 204 没有内容...
猜你喜欢
  • 2020-01-31
  • 1970-01-01
  • 2017-03-13
  • 1970-01-01
  • 1970-01-01
  • 2015-07-15
  • 1970-01-01
  • 2016-10-26
  • 2018-11-19
相关资源
最近更新 更多