2012-10-09 40 views
5

我正在开发一个PhoneGap的应用需要连接到一个staless远程服务器。一些远程请求已通过身份验证,我打算使用记事本服务。所以从应用程序中有一个登录选项被翻译成以下请求:jQuery $ .ajax。请注意,所有的请求都应用/ JSON的PhoneGap,饼干,跨域请求

POST REMOTESERVER/API /用户/登录

和服务器响应设置一个cookie

的Set-Cookie REMEMBER_ME_COOKIE = amVzdS5hbG9uc29AZ21haWwuY29tOjEzNTEwMDg1NTg1NDY6ODdkOGFhNzEzY2NiZTRhZTIwZjZlNzgyY2E1ZmQyODY ;到期= 2012年10月23日星期二16:09:18 GMT;路径= /;然而到服务器的下一个请求没有设置Cookie头

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

:仅Http

为了使跨域请求,这个服务器,因为这为响应OPTIONS请求。

1)是否可以使饼干工作?

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

回答

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

是的,但它不工作 – jalogar

+0

这一个为我工作。但是,用于加载具有验证失败的静态文件。我不知道如何实现静态图像文件。 – gviswanathan

+0

@ user1026361,我可以通过这种方式成功设置Connection标头吗? – BetRob