Phonegap,cookies,跨域请求

jal*_*gar 5 cookies jquery cross-domain cordova

我正在开发一个需要连接到staless远程服务器的phonegap应用程序.一些远程请求已通过身份验证,我计划使用remember-me服务.因此,从应用程序中有一个登录选项,该选项被转换为使用jQuery $ .ajax执行的以下请求.请注意,所有请求都是application/json

POST remoteserver/api/users/login

并且服务器响应设置cookie

Set-Cookie REMEMBER_ME_COOKIE = amVzdS5hbG9uc29AZ21haWwuY29tOjEzNTEwMDg1NTg1NDY6ODdkOGFhNzEzY2NiZTRhZTIwZjZlNzgyY2E1ZmQyODY; Expires = Tue,2012年10月23日16:09:18 GMT; 路径= /; 仅Http

为了使跨域请求起作用,服务器对OPTIONS请求的响应如下:

Access-Control-Allow-Headers : Content-Type, *
Access-Control-Allow-Origin : *
Access-Control-Max-Age : 1000
Run Code Online (Sandbox Code Playgroud)

但是,对服务器的下一个请求不是设置Cookie标头.

1)是否可以使cookie工作?

2)我还尝试在$ .ajax请求中手动添加cookie,但它也不起作用.这有什么不对吗?

$.ajax({
        type : type,
        url : url,
        data : data,
        success : callback,
        dataType : dataType,
        contentType : contentType,
        beforeSend: function(xhr) {
            xhr.setRequestHeader("Cookie", "REMEMBER_ME_COOKIE=amVzdS5hbG9uc29AZ21ha");
          },
        error : function(jqXHR, textStatus, errorThrown) {
            handleError(jqXHR, textStatus, errorThrown);
        }
    });
Run Code Online (Sandbox Code Playgroud)

use*_*361 1

您是否尝试过将标头构造到您的请求中?

$.ajax({
        type : type,
        url : url,
        data : data,
        success : callback,
        dataType : dataType,
        contentType : contentType,
        headers:{
             "Cookie" : "amVzdS5hbG9uc29AZ21ha"
        },
        error : function(jqXHR, textStatus, errorThrown) {
            handleError(jqXHR, textStatus, errorThrown);
        }
    });
Run Code Online (Sandbox Code Playgroud)