【发布时间】:2015-08-12 07:09:39
【问题描述】:
我目前正在开发基于 Cordova 和 Ionic 的移动应用。我正在处理第三方 API(即它不能,也不会为了这个应用程序工作而改变)。
当应用程序的用户未经身份验证时 - 无论他们的会话是否已过期 - API 都会以 HTTP 401 和 WWW-Authenticate 标头进行响应。
在浏览器中开发时这很好,但在 iPhone 上或在模拟器中它不会出现,并且应用程序必须达到请求的超时期限。当达到该超时时,请求被取消。这意味着在 JavaScript 中,我们只是返回一个 0 的 HTTP 状态,没有真实数据来确定是否存在超时或身份验证问题。
目前,我已经进行了一些有根据的猜测,例如在发生超时时检查手机是否有连接等,但这不是一个理想的解决方案,因为用户仍然必须等待超时,而且并不总是正确的.
如何检查 HTTP 401 对话框何时出现并等待响应?我需要能够识别实际 401 何时发生,以及请求何时超时。
如果 JavaScript 中有一个方法可以实现,那就太好了。原生解决方案也可以,无论是插件还是其他方式。
【问题讨论】:
标签: javascript ios objective-c cordova ionic