2
我有一個控制器操作,預計將由jquery調用。這裏的電話:如何將設計認證細節傳遞給軌道控制器操作?
$.ajax({
url: "/comments.json",
type: "POST",
dataType: "json",
data: {
commentable_id: $("#addCommentForm").attr("data-site-update-id"),
commentable_type: 'SiteUpdate',
content: $("#addCommentForm textarea#content").val()
},
success: function(comment) {
}
});
它工作得很好,但由於某種原因,「current_user」是控制器內的零。如果我強制authenticate_user!作爲過濾器,rails會返回一個HTTP Unauthorized。
如何傳遞驗證細節,以便該控制器操作可以與設計一起使用?更好的是,有什麼辦法可以讓這個透明?我不想一遍又一遍地通過每個Ajax請求的驗證細節...
在Java中,一旦用戶登錄...他們已登錄。您沒有通過任何URL到網址了 - 它在某個地方的會話中,而且都是透明的。有沒有辦法我可以用軌道做到這一點?我不想把重點放在這些細節上。
感謝
編輯:解決的辦法就是添加以下到您的JavaScript的地方:
$(document).ajaxSend(function(e, xhr, options) {
var token = $("meta[name='csrf-token']").attr("content");
xhr.setRequestHeader("X-CSRF-Token", token);
});
這完全似乎是問題......但不幸的是,這些解決方案都沒有工作。可以使用jQuery的鐵軌是問題嗎?我完全失敗了:(看來很多事情在rails中很容易,但是如果遇到問題,實際上可能很奇怪,很難弄清楚發生了什麼,至少我們知道問題是什麼 - 會話正在丟失,就像發生在其他人身上一樣 – egervari 2011-05-15 08:06:30
ahh,我不得不向xhr請求添加令牌 – egervari 2011-05-15 08:15:22
嘿,你能準確告訴我你是如何解決這個問題的嗎?我有類似的問題。 – rookieRailer 2011-09-08 04:28:16