Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ajaxSetup beforeSend仅在第一次单击按钮时调用_Javascript_Jquery_Asp.net_Ajax_Asp.net Mvc - Fatal编程技术网

Javascript ajaxSetup beforeSend仅在第一次单击按钮时调用

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,

我正在使用ASP.NETMVC和jQuery1.8.2

我有一个带有按钮的表单,单击该表单时调用此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事件,得到了相同的结果

如果您能帮助解决此问题,我们将不胜感激


谢谢

如果可能,我会避免使用$.ajaxSetup。我会在实际的POST请求中设置您的beforeSend

问题在于,正在渲染的局部视图引用了不同版本的jQuery。我删除了这个引用,一切都开始正常工作


谢谢

你使用的是什么浏览器?它发生在Chrome、Firefox和IE中。在整个应用程序中通过数百次POST调用将其添加到每一个POST调用中是不太实际的。