iOS Webapp 作为主页按钮 : Authentication Header sent with ajax stop working

标签 ios safari http-headers iphone-standalone-web-app

我有一个 web 应用程序,它通过 REST APi 女巫使用用户 ID 和 session token 响应进行身份验证,它将与 future 的 ajax 请求一起作为 API 安全端点的授权基本 header 发送。这适用于所有浏览器,包括 iOS Safari。在 iOS (iPad) 上,当我使用 apple-mobile-web-app-capable 元标记并将该应用程序添加到主屏幕时,问题就来了:登录后,即使我的授权 header 存在(在网络检查器中查看)我 mac 上的网络请求选项卡)当发送第一个安全调用时,我收到 safari 需要身份验证弹出窗口,要求我输入密码。

header 通过 ajaxSetup beforeSend 属性设置:

xhr.setRequestHeader("Authorization", "Basic " + base64Value)

同样,在所有浏览器上一切都很好,IOS Safari 应用程序和主页按钮模式都可以,但是当使用 meta: apple-mobile-web-app-capable 时,身份验证机制被破坏了。

我确实搜索了很多,但还没有找到解决方案。

最佳答案

我的问题现在已经解决了。 Ajax POST 请求在 Safari IOS 6 上被缓存,即使我清理缓存和 cookie,之前缓存的请求也会卡在某个地方。我在另一个 ajax 调用中遇到了相关问题,但我们通过在 REST 拦截器中添加无缓存 header 来解决它,但由于某种原因,对我们 API 的登录调用仍在使用缓存响应(旧 session token ),但仅在 WEB 中有能力的模式。在 LOGIN url 的末尾添加时间戳可以解决该问题。

我仍然不明白为什么特定请求永远不会从仅支持 WEB 模式的历史记录/cookie 中清除......

关于iOS Webapp 作为主页按钮 : Authentication Header sent with ajax stop working,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12954295/

相关文章:

ios - 如何向推送另一个 View Controller 的 UINavigationController 添加右键?

ios - 尝试获取 AppDelegate 时出现 "Unrecognized selector sent to instance"错误

html - Firefox(轻微伪影)和 Safari(不可见)的 CSS3 动画问题?

json - 如何在 react native 应用程序中获取带有 header 的 api(POST)

Java 过滤器无法设置响应 header

objective-c - 带有 UIWebView 的 NSTimer - 可行性

ios - 如何访问创建的目录? - NSCocoaErrorDomain 代码=257

JavaScript - window.scroll({ 行为 : 'smooth' }) not working in Safari

css - 当元素数等于列数时,chrome 和 safari 以不同方式呈现 css 列

xml - 确定 RSS 刷新率