【发布时间】:2019-05-01 13:20:01
【问题描述】:
我正在尝试在不使用 jQuery 的情况下在 WP 网站上进行 ajax 实时搜索,因为我不想为此功能加载额外的 80kb。我已经让它与 jQuery 一起使用,但是当我尝试重写脚本以使用 Vanilla js 时,我总是遇到问题
wp-admin/admin-ajax.php 400(错误请求)
工作代码
jQuery.ajax({
url: '<?php echo admin_url('admin-ajax.php'); ?>',
type: 'post',
data: { action: 'data_fetch', keyword: jQuery('#keyword').val() },
success: function(data) {
jQuery('#datafetch').html( data );
}
});
不起作用的 VANILLA JS 代码
var request = new XMLHttpRequest();
request.open('POST', '<?php echo admin_url("admin-ajax.php"); ?>', true);
request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
request.onload = function () {
if (this.status >= 200 && this.status < 400) {
console.log('if');
} else {
console.log('else');
}
};
request.onerror = function() {
console.log('onerror');
};
var data = document.getElementById('keyword').value;
request.send(data);
【问题讨论】:
-
什么是
data?它需要是一个序列化的字符串。例如:'action=data_fetch&keyword=' + document.getElementById('keyword').value.
标签: javascript ajax wordpress live