如何在Phonegap和Android 3.2下启用第三方Cookie?

我正在使用$ getJSON在Phonegap和Android下打一个node.js端点。 代码看起来像这样

$.getJSON( serverURL + "/login?callback=?", "playerId=" + playerId + "&pwd=" + pwd, function(data){ theCallbackFunction.call(null, JSON.parse(data)); }, function(jqXHR, textStatus, errorThrown) { alert('error ' + textStatus + " " + errorThrown); } ); 

为了响应login请求,我的服务器发回一个会话cookie。 如果在浏览器中启用了“第三方Cookie”,则只有在后续的AJAX请求中才会接受此cookie。 我发现较旧的Android设备(例如2.2)允许这个默认,但新的(3.2)不这样做。

是否可以强制Phonegap为我的Android应用程序启用第三方Cookie?

  • 是否有更好的Android支持JQTouch JQuery替代?
  • PhoneGap + jQueryMobile:Android后退buttonclosures嵌套列表中的应用程序
  • jquery ajax GET请求执行两次
  • 在没有当前上下文的情况下调用OpenGL ES API(每个线程logging一次)
  • 适用于Android的JQuery Mobile + PhoneGap - 加载index.html时出错
  • 在Android网页上禁用缩放input焦点
  • 电话媒体声音停止播放5次后
  • 选择的插件似乎不适用于移动浏览器
  • 我尝试使用服务器进行身份validation时遇到了类似的问题。 我反而诉诸使用localStorage。 请参阅下面或这里的代码。

      var store = window.localStorage, request = { url: {SERVER_URL}, headers : { Cookie: store.getItem('session') }, complete: function (jqXHR, status){ if (status != 'success') { console.log('ajax status: failure'); } else if (store.getItem('session') != null) { console.log('ajax status: session exists'); } else { console.log('ajax status: saving cookie'); var header = jqXHR.getAllResponseHeaders(); var match = header.match(/(Set-Cookie|set-cookie): (.+?);/); if (match) { session = match[2]; store.setItem("session", session); } } } } $.ajax(request); 

    在上面,我正在检查localStoragevariables“会话”,如果它存在,它会发送存储的cookie。 如果不存在,则需要服务器在头部发送'set-cookie'参数,匹配相关部分并将其存储在localStorage的'session'variables中。

    Phonegap不支持cookie抽象。 从来没有真正需要,因为已经有应用程序/插件。 此外,它打算包装电话/设备的function,而不是浏览器。 但是,您可以使用jQuery插件来做到这一点。

    https://github.com/carhartl/jquery-cookie