Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.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 第二次ajax调用时会话超时_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript 第二次ajax调用时会话超时

Javascript 第二次ajax调用时会话超时,javascript,jquery,ajax,Javascript,Jquery,Ajax,使用ASP.Net MVC 5、Razor视图、VS 2013、MSSQL 2012 我选择一个类别编号,然后点击选择按钮。使用CategoryID,ajax调用从服务器端带来一些数据 第一次点击按钮,程序运行良好。但是,在第二次单击时,没有服务器端方法调用&ajaxrequest中没有错误。它只返回一个SessionTimeOut 这是我的剧本: $("#btnChoose").click(function (e) { //var brand = $("#brands inpu

使用ASP.Net MVC 5、Razor视图、VS 2013、MSSQL 2012

我选择一个类别编号,然后点击选择按钮。使用CategoryID,ajax调用从服务器端带来一些数据

第一次点击按钮,程序运行良好。但是,在第二次单击时,没有服务器端方法调用&ajaxrequest中没有错误。它只返回一个SessionTimeOut

这是我的剧本:

$("#btnChoose").click(function (e) {
        //var brand = $("#brands input:radio:checked").val();
        //$("#output").html("<b>Your favorite mobile brand: </b>" + brand);
        $("#BrowseCategory").fadeOut(300);
        //e.preventDefault();
        var timer = setInterval(LoadeBayItemConditionAjax, 1000);
        function LoadeBayItemConditionAjax() {
            var selectedcategoryID = $("[id='hidCategoryID']").val();
            alert('hit');
            var URL = "@Url.Action("LoadCategoryFaced", "Listing")";
            $.ajax({
                url: URL,
                type: 'POST',
                data: JSON.stringify({ catId: selectedcategoryID }),
                dataType: 'json',
                contentType: 'application/json',
                //async: false,
                //cache: false,
                timeout: 30000,
                success: function (data) {
                    var subSelect = $('#eBayItemCondition');
                    alert(subSelect);
                    subSelect.empty();
                    alert(data);
                    if (data != null || data != '')
                        $("#eBayItemConditionDiv").show();
                    else
                        $("#eBayItemConditionDiv").hide();
                    $.each(data, function (key, ddlCondition) {
                        $('select#eBayItemCondition').append($('<option/>', {
                            value: ddlCondition.Value,
                            text: ddlCondition.Name
                        }));
                    });
                },
                error: function (jqXHR, exception) {
                    var status = AjaxErrorHandle(jqXHR, exception);
                    Notification("error", status, false);
                }
            });
            alert();
            clearInterval(timer);
        }
        return false;
    });
$(“#btnChoose”)。单击(函数(e){
//var brand=$(“#brands输入:radio:checked”).val();
//$(“#输出”).html(“您最喜欢的移动品牌:+品牌);
美元(“#BrowseCategory”)。淡出(300);
//e、 预防默认值();
var timer=setInterval(LoadeBayItemConditionAjax,1000);
函数LoadeBayItemConditionAjax(){
var selectedcategoryID=$(“[id='hidCategoryID']”)val();
警惕(“击中”);
var URL=“@URL.Action”(“LoadCategoryFaced”,“Listing”);
$.ajax({
url:url,
键入:“POST”,
数据:JSON.stringify({catId:selectedcategoryID}),
数据类型:“json”,
contentType:'应用程序/json',
//async:false,
//cache:false,
超时:30000,
成功:功能(数据){
var subSelect=$(“#eBayItemCondition”);
警报(子选择);
subSelect.empty();
警报(数据);
如果(数据!=null | |数据!='')
$(“#eBayItemConditionDiv”).show();
其他的
$(“#eBayItemConditionDiv”).hide();
$.each(数据、函数(键、条件){
$('select#eBayItemCondition')。追加($(''{
value:ddlCondition.value,
text:ddlCondition.Name
}));
});
},
错误:函数(jqXHR,异常){
var status=AjaxErrorHandle(jqXHR,异常);
通知(“错误”、状态、错误);
}
});
警惕();
清除间隔(计时器);
}
返回false;
});

如何防止此会话超时?为什么会发生这种情况?

您是说服务器方法永远不会被第二次调用吗?或者它被调用但抛出会话超时?@Nilesh第二次服务器方法被“从不”调用。事实上,在第一次尝试之后,服务器方法从未被调用。AJAX请求转到
success
而不是error。您使用的是internet explorer吗?尝试使用chrome并查看是否再次触发请求。使用
setTimeout
-这样您就不需要调用
clearinVal
@Nilesh我已经尝试过IE、chrome、Firefox和Safari。同样的结果。