首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >警报在响应之前到来

警报在响应之前到来
EN

Stack Overflow用户
提问于 2012-08-06 23:18:21
回答 2查看 77关注 0票数 0

我有这个ajax函数,它可以验证用户提供的密钥。但是警报出现在ajax响应之前,因此,如果用户提供了错误的密钥,甚至可以获得访问权限

代码语言:javascript
复制
$(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;
                }                        

            }
        });

    });
});

EN

回答 2

Stack Overflow用户

发布于 2012-08-06 23:21:10

是什么让你相信警报是在响应之前到来的?只有在客户端成功接收到响应后,才会调用成功处理程序。

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

代码语言:javascript
复制
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的异步特性,这将不起作用。

票数 0
EN

Stack Overflow用户

发布于 2012-08-06 23:21:28

当请求完成时,将调用success函数。

数据成功(

,textStatus,jqXHR)函数,请求成功时调用的数组函数。该函数传递了三个参数:从服务器返回的数据,根据dataType参数格式化;描述状态的字符串;以及jqXHR (在jQuery 1.4.x,XMLHttpRequest中)对象。从jQuery 1.5开始,成功设置可以接受一组函数。每个函数将被轮流调用。这是一个Ajax事件。

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11831103

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档