2012-10-09 103 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