我正在使用Ajax调用来发出POST请求,随后对API进行了调用。然后返回结果。我最初使用的是触发成功的成功回调,但是由于某种原因它停止工作,并且我读到它已被完成替换,因此我尝试更改它。我不知道为什么,但是现在既不会成功也不会成功。我最近更新了浏览器,所以可能与它有关。我也在Wordpress中运行它。在网络标签中返回200,状态和消息编码为JSON。 jQuery版本是1.12.4。尽管Ajax调用已完成,但是控制台中没有任何登录,并且该对话框也没有打开。我该如何使用它?
$.ajax({
type: 'POST',
dataType: 'json',
url: ajax_object.ajax_url,
data: {
'action': $action,
'product_id': $product_id,
},
success: function(data) {
console.log(data.message);
$( "#dialog" ).text(data.message);
$( "#dialog" ).dialog( "option", "title", "API - " + data.status );
$( "#dialog" ).dialog("open");
}
});
$.ajax({
type: 'POST',
dataType: 'json',
url: ajax_object.ajax_url,
data: {
'action': $action,
'product_id': $product_id,
}
}).done(function(result) {
console.log(result.message);
$( "#dialog" ).text(result.message);
$( "#dialog" ).dialog( "option", "title", "API - " + result.status );
$( "#dialog" ).dialog("open");
});
答案 0 :(得分:1)
从jQuery中删除dataType参数,AJAX在触发.done()之前会使用它的JSON转换失败,因为API中的JSON中缺少某些内容/错误。您可以通过在.done()之后添加.fail()进行检查,然后查看它如何触发错误。
$.ajax({}).done().fail(error => console.log(error)
jQuery.ajax
尝试根据 指定的dataType
参数或由 服务器。如果转换失败(例如JSON / XML无效),则 错误回调被触发。
Ajax request returns 200 OK, but an error event is fired instead of success