jquery - 在 AJAX 和 WordPress 中找不到数据时显示消息
问题描述
我在 WordPress 中有一个表单过滤器。
当我没有数据但我不能:
$.ajax({
url : ajax_url,
data : data,
success : function(response) {
mafs.find("#ajax_fitler_search_results").empty();
if(response) {
for(var i = 0 ; i < response.length ; i++) {
var img = null;
if(response[i].statut == 'encours') {
img = '//localhost:3000/app/themes/sofico2018/dist/images/icon-encours.svg'
}
var html = "<li class='cList__item'>";
html += " <img width='18' height='21' src='" + img + "' />";
html += "<p class='cList__chantier'>" + response[i].title + "</p>"
html += " <p>Province: " + response[i].province + "</p>";
html += "</li>";
mafs.find("#ajax_fitler_search_results").append(html);
}
} else {
alert('error');
var html = "<li class='no-result'>No matching movies found. Try a different filter or search keyword</li>";
mafs.find("#ajax_fitler_search_results").append(html);
}
}
});
});
当我没有匹配的数据时,我得到一个答案 200 但为空。
我的PHP代码:
if ( $search_query->have_posts() ) {
$result = array();
while ( $search_query->have_posts() ) {
$search_query->the_post();
$cats = strip_tags( get_the_category_list(", ") );
$result[] = array(
"id" => get_the_ID(),
"title" => get_the_title(),
"statut" => get_field('statut'),
"province" => $cats
);
}
wp_reset_query();
echo json_encode($result);
} else {
// no posts found
}
我不知道为什么我在提交验证时得到答案 200 并且没有结果。问题可能来自于?
非常感谢您的帮助!
解决方案
如果您期待 JSON 对象,请设置 contentType 和请求标头,如下所述。
您可以尝试 jQuery.isEmptyObject(response) 来验证对象是否为空。
$.ajax({
url: url,
dataType: 'json',
type: method type,
data : data,
contentType: "application/json",
beforeSend: function (e) {
e.setRequestHeader('Accept', 'application/json; charset=utf-8')
},
success: function (response) {
if(!jQuery.isEmptyObject(response)){
//logic
}else{
//No object recived from backend
}
},
error: function () {
console.log ("Failed!");
}
});
推荐阅读
- python - 在 Elastic Beanstalk 部署期间从 AWS Systems Manager Parameter Store 获取价值
- python - Filter a multidimensional numpy array by column
- sql - 如何对实例字符串值求和
- react-native - react-native:将菜单值作为参数传递给函数
- vaadin-flow - 无法使用 vaadin 14 在响应式对话框中显示网格
- python - 如何使用字符串格式来接收小数点后正好 5 个数字的数字?
- python - 如果找不到文件,Python 脚本会中止
- twitter-bootstrap-3 - 带有溢出-x 菜单的引导导航栏滚动间谍
- scipy - scipy 的curve_fit 不见了?
- javascript - 如何检查日期是在语言环境时间之前还是之后