jQuery AJAX没有在浏览器中触发

时间:2013-08-21 17:45:16

标签: 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_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不起作用。

1 个答案:

答案 0 :(得分:0)

并不是说你的ajax调用不能正常工作,因为它没有报告想要的方式。

async : false告诉ajax等待并“看到”结果是什么

async: true基本上意味着触发ajax调用并继续浏览代码而不等待响应。