警报即将响应

时间:2012-08-06 15:18:21

标签: ajax jquery

我有这个ajax函数,用于验证用户提供的密钥。但警报在ajax响应之前发生,因此如果用户提供了错误的密钥,即使可以访问

$(document).ready(function() {
    $('#submit').click(function(e) {
        e.preventDefault();
        var key = $('#downloadkey').val();
        var dataString = {KEY:key};
        $.ajax({
            url: "/mediabox/home/validate_key",
            type: 'POST',
            data: dataString,

            success: function(msg) {
                if(msg=="true") 
                {
                   alert("do something");
                }
                else
                {
                   alert("Your download key is either wrong or you didn't provide it.");
                   return false;
                }                        

            }
        });

    });
});

enter image description here

2 个答案:

答案 0 :(得分:0)

是什么让你相信在回复之前警报即将来临?成功处理程序仅在客户端成功接收响应后调用。

要确认,您可以编辑成功处理程序以记录响应:

success: function(msg) {
   console.log(msg);
   if(msg=="true") 
   {
      alert("do something");
   }
   else
   {
       alert("Your download key is either wrong or you didn't provide it.");
       return false;
   }                        
}

此外,如果您使用return false通过阻止HTML操作来拒绝用户访问,则由于AJAX的异步性质而无效。

答案 1 :(得分:0)

请求完成时调用success函数。

  

成功(data,textStatus,jqXHR)函数,数组

     

请求成功时要调用的函数。该函数传递了三个   arguments:从服务器返回的数据,格式为   dataType参数;描述状态的字符串;和jqXHR   (在jQuery 1.4.x,XMLHttpRequest中)对象。截至jQuery 1.5,   成功设置可以接受一系列功能。每个功能都会   被轮流打电话。这是一个Ajax事件。

成功处理程序中的代码只会在AJAX请求完成后执行。如果您事先收到警报,则表示请求已正确完成。