概述
我目前正在开发一个 jQuery/HTML5 项目,该项目使用一系列图表显示 Web 性能数据,使用内部 API 来检索数据。API 由 Yii 提供支持,但我没有在开发它,所以我不能自己更改或试验它。
基本上我希望有人可以帮助确定 API 是否是问题的根本原因,或者是否是我的 jQuery 中的 Ajax 不正确的问题。
我的应用程序经历的过程的一个小解释......
- 应用程序加载,使用用户详细信息通过 API 进行身份验证。从 API 接收 API 密钥。
- 检索到密钥后,会进行多次调用以从 APi 检索数据以显示为 Web 性能数据。
- 在设定的时间间隔内,对数据库调用泛型以检查 API 密钥是否已过期。
- 如果密钥已过期,它会再次向 API 请求新的 API 密钥,如步骤 1 中所述。如果获取 API 密钥有任何问题,则此时用户将被踢出。
- 重新启动周期,不包括获取数据。
问题
所有的 Ajax 调用都是跨域的,因为项目和 API 都在不同的子域上。这些是使用 JSONP 和 jQuery 回调完成的。
我遇到的问题是,当我需要验证密钥是否有效时,如果它不再有效,API 会返回一个 401 错误,我的 Ajax 没有注册。如果我在 Firefox 中查看 API URL,我可以看到返回的 Json 数据,包含在回调中,但是当我检查 firebug 时,它说有请求,但没有响应。
基本上,当 API 返回不是 200 OK 的数据时,它根本不会发送响应头。
但是,我在终端中使用 cUrl 手动调用了 API,并收到了响应标头,以及在 Google Chrome 中。
如果有人能告诉我这是否是 Firefox/jQuery 的一个众所周知的问题,或者这是否是 Yii API 的问题,我将非常感激。