浏览器中未触发jQuery AJAX

浏览器中未触发jQuery AJAX,jquery,ajax,asynchronous,coldfusion,cfc,Jquery,Ajax,Asynchronous,Coldfusion,Cfc,我有一段代码。从概念上讲,我理解发生了什么,但我不明白为什么它不起作用: function Update(id,day,sid) { var sendMail; form = $('Update_Appointment_'+day); if($(id + '_Student_Appointment_' + sid) != null && $(id + '_Student_Appointment_' + sid).value != '') $('Delete_Stu

我有一段代码。从概念上讲,我理解发生了什么,但我不明白为什么它不起作用:

function Update(id,day,sid)
{   
var sendMail;
form = $('Update_Appointment_'+day);

if($(id + '_Student_Appointment_' + sid) != null && $(id + '_Student_Appointment_' + sid).value != '')
    $('Delete_Student_Appointment').value=$(id + '_Student_Appointment_' + sid).value;
else
    $('Delete_Student_Appointment').value='';

form.action = 'appointment_popup.cfm?type=online&range_'+day+'=' + $F('Week_Select');
Set_ID(id,day,sid);

$q.ajax({
    type: 'POST',
    async: false,
    url: 'cfc/email_appointment.cfc',
    data: {
        'method' : 'email_update',
        'Appointment_ID': id,
        'Consultant_ID': $q('[name="'+id+'_Consultant"]').val()
    },
    sucess: function(){
        alert('Yay!');
    },
    error: function(){
        alert('Boo!');
    },
    complete: function(){
        alert('Complete!');
    }       
}); 
return sendMail;
}

最初,这段代码应该进行更新并提交一个表单,这是可行的。我添加了一块,在更新之后,它将向CFC发出AJAX调用,CFC将检查更新内容,并在需要时发送电子邮件更改

现在,我的问题是:如果调用像
Update(987,foo,123456)
这样的函数,我可以让代码在控制台中工作。我还可以在Chrome的网络选项卡中看到该功能正在完成,状态代码为200。在这两个选项上,“完成!”警报框也会触发

以下是浏览器调用函数和从控制台调用函数的区别: 控制台将有预览和响应数据,而浏览器将显示“此请求没有可用的预览”和“此请求没有可用的响应数据” 控制台将发送它应该发送的电子邮件,但浏览器不会


我觉得我没有理解AJAX调用的基本原理,但我不知道它会是什么。我只知道AJAX调用必须设置为
async:false
,因为
async:true
不起作用。

不是因为AJAX调用不起作用,而是因为它没有按照您所希望的方式报告

async:false
告诉ajax等待并“查看”结果


async:true
基本上意味着启动ajax调用并在不等待响应的情况下继续浏览代码。

为什么在代码中使用
$
$q
$F
?这些是jQuery的不同版本吗?另外,
async:true
vs
async:false
不会使ajax调用“不起作用”,它会使围绕ajax调用的逻辑不起作用。设置
async:true
时会发生什么
不起作用
没有太大帮助。@KevinB-是,$q和$F是jQuery的不同版本。$是为某个函数增选的(我认为是将DOM放入数组中)。我不知道为什么,但它是在2007年左右制作的,所以它可能是某人的好主意。@KarlAnderson-setting
async:true
将在Chrome的网络选项卡中显示红色文本,状态为“(取消)”,并弹出警告“Boo”和“Complete”。这是预期的。@Chester-所以异步调用时预期失败,但同步调用时不预期失败?我很困惑。