当运行document.ready()事件时,有时ajax请求无法正常工作

时间:2012-10-22 18:17:00

标签: jquery ajax asp.net-mvc-3

var casualDays;
var days;

  $(document).ready(function(){

    $(function(){
        $('select, input').styledSelect();
    });

    $(function (){
    var usernameSelected = $("input#Employee_UserName" ).val().toString();
    var username;
    $.ajax({
        url: '@Url.Action("GetLeaveConsumedDays", "ApplyLeave")',
        type: 'POST',

        data: { username: usernameSelected },

        success: function (results) {
           days=results;
        }, 
        error: function () {
            alert("error");
        }
    });
    });
    $(function (){
    var usernameSelected = $("input#Employee_UserName" ).val().toString();
    var username;
    $.ajax({
        url:'@Url.Action("GetLeaveConsumedDaysCasual", "ApplyLeave")',
        type: 'POST',

        data: { username: usernameSelected },

        success: function (results) {
           casualDays=results;
        }, 
        error: function () {
            alert("error");
        }
    });
    });

ķ

这是我的document.ready事件,在运行页面后,它的工作正确地运行了两三次。但是经过几次不能正常工作。没有为'days'和'casualdays'赋值,那就是得到一些错误经过两三次刷新后的工作。我想不出是什么原因。请任何人帮助我

1 个答案:

答案 0 :(得分:3)

Ajax是异步的,您必须等到请求完成后再访问dayscasualdays

var foo; 
alert(foo); // undefined 1

$.ajax({ 
    url: "foo.php", 
    success: function(data){
        foo = data // foo now equals data
        alert(foo); // NOT undefined! 3
    }
});

alert(foo); // still undefined 2