Skip to main content
 首页 » 编程设计

jquery之Phonegap、cookie、跨域请求

2026年07月28日5sky-heaven

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

POST remoteserver/api/users/login

服务器响应并设置 cookie

Set-Cookie REMEMBER_ME_COOKIE=amVzdS5hbG9uc29AZ21haWwuY29tOjEzNTEwMDg1NTg1NDY6ODdkOGFhNzEzY2NiZTRhZTIwZjZlNzgyY2E1ZmQyODY; Expires=Tue, 23-Oct-2012 16:09:18 GMT; Path=/; HttpOnly

为了使跨域请求正常工作,服务器对 OPTIONS 请求进行如下响应:

Access-Control-Allow-Headers : Content-Type, * 
Access-Control-Allow-Origin : * 
Access-Control-Max-Age : 1000 

但是,对服务器的下一个请求不会设置 Cookie header 。

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); 
        } 
    }); 

请您参考如下方法:

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

$.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); 
        } 
    });