我试图在混合移动ios应用程序上使用基本身份验证进行ajax调用。 ajax调用没有返回任何东西它只是挂起没有成功也没有失败。但同样的ajax调用从android成功激活。
当我用wireshark检查传出请求时,我发现身份验证标头丢失,401从我的服务器返回,在后续调用中,身份验证标头也会随请求一起发送,返回301。但它适用于android
同样的api在ios中从我的开发服务器工作正常但在我的prod服务器中失败
赞赏任何建议
答案 0 :(得分:2)
我使用的是cordova 4.2.0。
我观察到,如果使用" WWW-Authenticate:Basic"标题,IOS / UIWebView似乎吞下响应而不是将其传递回应用程序层,这使得服务的效果永远不会响应。也许这是为了防止身份验证弹出窗口。
无论如何,这种行为完全出乎意料!
编辑:我发现了一个针对此问题的cordova错误报告:https://issues.apache.org/jira/browse/CB-2415
答案 1 :(得分:0)
这似乎可以通过Cordova iOS平台4.X及更高版本解决。我刚刚使用UIWebView更新了一个较旧的应用程序到WKWebView,这个问题不再发生,我们可以删除相对痛苦的解决方法(使用同步调用)。