我有这个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;
}
}
});
});
});
答案 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请求完成后执行。如果您事先收到警报,则表示请求已正确完成。