jquery - 如何解析/获取 Ajax 延迟响应
问题描述
我正在尝试获取使用 ajax 发送到 PHP 邮件页面的电子邮件表单的响应代码。如果邮件发送成功,它会回显 1 否则 0。
这是我发送的方式
$('form.ajax-form').on('submit', function(evt){
evt.preventDefault();
var $form = $(this);
$.ajax({
url: $form.attr('action'),
method: $form.attr('method'),
data:$form.serialize(),
success: function(response){
if (response == '1' ) {
M.toast({html: 'I am a toast!'});
}else if (response == '0') {
M.toast({html: 'I am not a toast!'});
}
},
});
});
根据我想要执行的响应,M.toast({html: 'I am a toast!'});
但即使 PHP 邮件程序回显 1 或 0,我也无法获得响应。邮件程序需要 4 秒才能回显响应。我试过delay : 4
了仍然无法得到响应。我究竟做错了什么 ?请帮忙。谢谢你。
更新。
以下是 XHR 的回复。
解决方案
这是工作代码。
$('form.ajax-form').on('submit', function(evt){
evt.preventDefault();
var $form = $(this);
$.ajax({
url: $form.attr('action'),
method: $form.attr('method'),
data:$form.serialize(),
async:false,
success: function(response){
if ($.trim(response) === '1') {
M.toast({html: 'I am a toast!'});
}else if ($.trim(response) === '0') {
M.toast({html: 'I am a not toast!'});
}
},
});
});
不得不修剪响应并设置 async:false,它现在可以工作了。
推荐阅读
- javascript - 无法读取未定义的属性“目标”。我想附加一个特定的元素,但它给了我错误
- unit-testing - 断言在带有参数的 JavaScript 函数的 MarkLogic 单元测试中引发错误
- php - fputcsv() 不会转义双引号?
- angular - matRipple 应该在点击而不是在 touchstart 上工作
- java - 我如何将 % 与 RestTemplate 一起使用
- php - 我无法传递会话变量。它在本地主机上工作,但不在服务器上。(PHP 7.4)
- regex - 如何在两个其他模式之间捕获模式的多个实例
- python - 如何将列表数量的循环作为函数的参数?
- r - 使用 dplyr group_by 时将汇总条件应用于一系列列?
- typescript - tsx 找不到模块“xxx”