【发布时间】:2016-01-19 04:14:37
【问题描述】:
我有一个在 Android 手机(Galaxy S6 Edge、Android 5.1.1)上运行的 Ionic (Cordova/Angular) 应用程序。 此应用程序与用户必须先登录的服务器通信。
登录后,通过在 $http 调用中包含 withCredentials=true,从服务器接收到的身份验证 cookie 会在每次请求时自动发送回服务器。
例如:
$http({
method: 'POST',
url: LoginStatusUrlMobile,
responseType: 'document',
withCredentials: true
})
这曾经有效,但本周末不再发送 cookie,应用程序也不再有效。 我尝试了几件事来弄清楚发生了什么:
是 Chrome 46 的新版本吗? => 我在我的手机上卸载了 Chrome 和 Chrome webview 的更新,但这没有任何区别
在我的开发环境中,该应用程序仍然可以运行(Mac 上的 Chrome 版本 46.0.2490.71 使用 --disable-web-security 转同源策略)
我尝试在 Genymotion 中运行该应用程序,这在运行 Android 4.4.4 的虚拟设备上运行,但它没有在运行 Android 5.1.0 的虚拟设备上发送 cookie
该应用程序也可在 iOS 上运行,我尚未对其进行彻底测试,但它在装有 iOS 8.1 的 iPad 上运行正常
这是我现在的情况,我的问题是: 当 withCredentials=true 似乎不再起作用时,有谁知道如何通过角度 $http 请求将 cookie 发送回服务器。
【问题讨论】:
标签: angularjs cordova cookies ionic