Javascript ajaxSetup beforeSend仅在第一次单击按钮时调用
我正在使用ASP.NETMVC和jQuery1.8.2 我有一个带有按钮的表单,单击该表单时调用此javascript:Javascript ajaxSetup beforeSend仅在第一次单击按钮时调用,javascript,jquery,asp.net,ajax,asp.net-mvc,Javascript,Jquery,Asp.net,Ajax,Asp.net Mvc,我正在使用ASP.NETMVC和jQuery1.8.2 我有一个带有按钮的表单,单击该表单时调用此javascript: $(function () { $('#SearchButton').click(function () { var data = $('#FilterDefinition :input').serialize() + "&PageNumber=1"; $.post('@Url.Action("Search")', data,
$(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事件,得到了相同的结果
如果您能帮助解决此问题,我们将不胜感激
谢谢 如果可能,我会避免使用$.ajaxSetup。我会在实际的POST请求中设置您的beforeSend 问题在于,正在渲染的局部视图引用了不同版本的jQuery。我删除了这个引用,一切都开始正常工作
谢谢 你使用的是什么浏览器?它发生在Chrome、Firefox和IE中。在整个应用程序中通过数百次POST调用将其添加到每一个POST调用中是不太实际的。