我有一个在Android手机上运行的Ionic(Cordova / Angular)应用程序(Galaxy S6 Edge,Android 5.1.1)。 此应用程序与用户必须首先登录的服务器通信。
登录后,通过在$ http调用中包含withCredentials = true,服务器收到的身份验证cookie会在每次请求时自动发回服务器。
例如:
$http({
method: 'POST',
url: LoginStatusUrlMobile,
responseType: 'document',
withCredentials: true
})
这曾经有用,但本周末不再发送cookie,应用程序不再有效。 我尝试了几件事来弄清楚发生了什么:
这是Chrome 46的新版本吗? =>我在手机上卸载了Chrome和Chrome网页浏览的更新,但这并没有任何区别
在我的开发环境中,该应用仍然有效(Mac上的Chrome版本为46.0.2490.71,带有--disable-web-security以转换相同的来源政策)
我尝试在Genymotion中运行应用程序,这适用于运行Android 4.4.4的虚拟设备,但它没有在运行Android 5.1.0的虚拟设备上发送cookie
< / LI>该应用程序也可以在iOS上运行,我还没有彻底测试过,但是我的iPad上的iOS 8.1工作正常
这是我现在的情况,我的问题是: 有没有人知道如何使用angular $ http请求将cookie发送回服务器,当withCredentials = true时似乎不再有效。
答案 0 :(得分:2)
我通过删除Android平台然后重新创建它找到了解决方案。 之后我按照here所述添加了cordova-whitelist-plugin。
现在一切都恢复正常了。