2011-09-01 71 views
3

看到,當使用AJAX和ValidateAntiForgeryTokenAttribute正在尋找的Request.Form令牌,如何人處理這個問題__RequestVerificationToken不發送處理AJAX職位,以ActionMethods。如何是人在使用[ValidateAntiForgeryToken]

我最終這樣做了。

$("#regmember-form").submit(function (e) { 
    e.preventDefault(); 

    var token = $('[name="__RequestVerificationToken"]').val(); 

    alert($(this).attr('action')); 

    $.ajax({ 
     url: $(this).attr('action'), 
     type: $(this).attr('method'), 
     data: { __RequestVerificationToken: token } 
    }); 

    return false; 
}); 

非常類似於accepted answer

回答

3

我從頁面抓取輸入並將其與表單文章一起發回。這假定您首先將它包含在頁面中。

$('#somebutton').click(function() { 
    var data = $('[name="__RequestVerificationToken"]').serialize(); 
    $.post('/foo/bar', data, function(result) { 
     // ... 
    }); 
}); 
+0

我使用Ajax.BeginForm所以我不得不搶$(「#theform」)。提交嘗試了這一點,會後回來結果 – CrazyCoderz

+0

它抱怨,如果我的方式序列化。 – CrazyCoderz

+0

@CrazyCoderz - 只要你有表單內的令牌,我會認爲它會*使用Ajax.BeginForm工作*。這應該在提交時發送表單中的所有輸入。我假設你只用有限的輸入手動提交。當你進行序列化時,你會得到什麼錯誤? – tvanfosson

相關問題