2011-03-25 62 views
0

我想向使用before_filter驗證用戶的Rails控制器發送AJAX請求。當請求被髮送的問題是,在服務器要求進行身份驗證,即使用戶已經登錄如何向Rails中的需要驗證的操作發出AJAX請求?

這裏是我的AJAX請求:

$.ajax({ 
    type: 'DELETE', 
    url: "/messages/delete_all", 
    data: [1,2,4], 
    success: function() { 
     console.log("Your request is received.") 
    } 
}); 

當用戶從瀏覽器中點擊delete_all,它工作,但與AJAX它沒有。是什麼賦予了?

編輯:它可能與authenticity_token有關嗎?

+0

你用什麼樣的認證?是否像http-basic-auth? – Wukerplank 2011-03-25 07:28:43

+0

是的,我認爲是。我正在使用Devise,但我看到的彈出窗口對於http-basic-auth來說很典型。 – picardo 2011-03-25 07:30:22

回答

1

也許這個問題會有所幫助:Using javascript with the twitter API

的解決方案提出,應該是這個樣子,你的情況

$.ajax({  
    type: 'DELETE', 
    url: "/messages/delete_all", 
    data: [1,2,4], 
    beforeSend: function(xhr) { 
    xhr.setRequestHeader("Authentication", "Basic " + encodeBase64(username + ":" + password) 
    }, 
    success: function() { 
    console.log("Your request is received.") 
    } 
}); 
+0

這是否安全?另外,我要在哪裏存儲和罰款用戶名和密碼?用戶使用Facebook登錄。 – picardo 2011-03-25 17:17:32

+0

它與基本身份驗證一樣安全。以純文本格式存儲密碼和用戶名是一個壞主意。如果用戶直接輸入信息,它應該是很好的國際海事組織。 – polarblau 2011-03-25 21:28:14