2014-02-21 175 views
1

我的客戶端有一個Web服務API,我必須首先連接到一個有效載荷的用戶名和密碼才能獲得SecurityToken,然後使用此SecurityToken作爲爲所有以下API調用發送的標頭的一部分,所以我是想知道如何使用JQuery $ .ajax方法來做到這一點。任何例子都非常感謝。JQuery網絡服務授權

以下是我在驗證到目前爲止已經試過,但它始終是在響應返回了錯誤,所以我不知道這是否是正確的:

$(document).ready(function(){ 
    $.ajax 
     ({ 
     type: "POST", 
     url: "http://portal.domainname.com/auth", 
     dataType: 'json', 
     async: false, 
     data: '{"Login : [email protected]", "Password : test"}', 
     success: function(){ 
      alert('Success'); 
     }, 
     error: function(xhr, error){ 
      console.debug(xhr); console.debug(error); 
     } 
    }); 

}); 

問題與上面的代碼是,它總是返回200個OK狀態,但令牌從來沒有響應

+0

你嘗試過什麼?那裏有大量的'.ajax()'教程。這看起來很直接 – tymeJV

+0

@tymeJV對不起在原始問題中添加它。我剛剛在上面添加了它。但我總是得到200 OK狀態,沒有任何反應,換句話說,令牌永遠不會返回 – MChan

回答

1

我想你想發送data爲對象,而不是返回的字符串,因爲字符串implies它是一個查詢字符串:

data: JSON.stringify({ Login: "[email protected]", Password : "test" }),另外,如果你得到一個200,那麼它意味着響應成功了(你應該使用success回調函數),但是你所有的邏輯代替了error回調函數。你可能想:

success: function(data) { 
    // Do something with data 
}, 
+0

感謝您的幫助,我試過了您的代碼,但我得到了SyntaxError:意外的令牌','有什麼想法?謝謝 – MChan

+0

@MChan是的,我複製並粘貼了你有的字符串,但它錯誤地格式化了鍵值對。 :P現在修復它。 – Igor

+0

感謝您更新答案,它現在不會給出錯誤:)但我仍然無法獲取令牌。我的客戶添加的一件事是,登錄信息必須以JSON格式發送。因此,例如當您以Google Chrome爲例進行測試時,您必須點擊「行」選項卡,粘貼登錄數據和json併發送,而不是將參數發送爲參數。所以我想知道如何確保數據在我的代碼中發佈爲json(考慮到我已經將數據類型設置爲json)?謝謝 – MChan

1

對我說,您發送的JSON是不是有效的JSON:

data: '{"Login : [email protected]", "Password : test"}', 

應該

data: '{"Login" : "[email protected]", "Password" : "test"}',