我有一台服务器我试图发送cookie。我发送第一个POST请求,我从响应头中存储收到的cookie,并尝试使用第二个GET请求来检索经过身份验证的用户只能访问的数据。跨域请求没问题,我能够在Phonegap应用程序中检索我的cookie,但是当发送它们时,它会失败。请求标头不包含任何cookie。 phonegap -v
会返回5.1.1-0.29.0
。
我已经尝试过的事情:
将域添加到白名单
确保我保存的Cookie不在请求标头,服务器端,
通过C#提出相同的请求,以确保它不会成为服务器端问题
请求代码:
$.ajax(
{
type: "GET",
url: "url",
xhrFields: {
withCredentials: true
},
crossDomain: true,
beforeSend: function(xhr) {
xhr.setRequestHeader("Cookie", mycookies);
},
success: function(data){
console.log(data);
},
error: function (xhr) {
console.log(xhr.responseText);
}
}
);
非常感谢任何帮助,谢谢。
答案 0 :(得分:0)
通过快速搜索,我了解Cordova不会持有cookie,因此您必须使用本地存储。
以下是示例:http://justbuildsomething.com/cordova-and-express-session/
答案 1 :(得分:0)
在标题ajax中添加cookie:
$.ajax(
{
type: "GET",
url: "url",
xhrFields: {
withCredentials: true
},
crossDomain: true,
headers: {
Cookie: mycookies
},
success: function(data){
console.log(data);
},
error: function (xhr) {
console.log(xhr.responseText);
}
}
);
答案 2 :(得分:0)
最终,Phonegap似乎没有任何可以让您使用cookie
标头执行跨域AJAX调用的外部插件。愚蠢。我通过编写一个小代理解决了,无法解决任何其他更好的解决方案。感谢任何试图帮助的人,我很感激。