我使用ASP.Net MVC和jQuery 1.8.2ajaxSetup beforeSend只被稱爲第一次按鈕被點擊
我有調用該JavaScript單擊時按鈕的一種形式:
$(function() {
$('#SearchButton').click(function() {
var data = $('#FilterDefinition :input').serialize() + "&PageNumber=1";
$.post('@Url.Action("Search")', data, LoadContentCallback);
$("#SearchResults").show();
});
});
這需要一個MVC控制器動作返回一個PartialViewResult
在佈局網頁,我有以下的JavaScript代碼:
//Add a custom header to all AJAX Requests
$(document).ready(function() {
$.ajaxSetup({
beforeSend: function(xhr) {
debugger;
if ($('[name=__RequestVerificationToken]').length) {
var token = $('[name=__RequestVerificationToken]').val();
xhr.setRequestHeader('__RequestVerificationToken', token);
}
}
});
});
第一次點擊該按鈕時,會正確調用beforeSend函數。但是,如果多次單擊該按鈕(例如,他們更改搜索條件並再次搜索),那麼beforeSend函數將不會再次被調用,並且驗證防僞功能失敗。
我嘗試使用ajaxSend事件,而我得到了相同的結果。
任何幫助解決這個問題將不勝感激。
謝謝!
你使用什麼瀏覽器? – nick
它發生在Chrome,Firefox和IE中。 – jkruer01