Я делаю Ajax-вызов к admin-ajax.php с синтаксисом API выборки. Вот код, который вызывает внутренний скрипт:
fetch(ajax_obj.ajaxurl, {
method: "POST",
mode: "cors",
cache: "no-cache",
credentials: "same-origin",
body: JSON.stringify(this.data),
headers: {
"Content-Type": "application/json"
}
})
и получение ответа 400 Bad Request.
Может кто-нибудь сказать мне, где этот запрос не так?
При проверке средств разработки сети в chrome я вижу, что отправленное тело в порядке, URL-адрес также в порядке ...
... и, насколько я знаю, коды состояния 4xx относятся к ошибкам на клиенте, поэтому я даже не смотрю код на стороне сервера ... если я ошибаюсь, пожалуйста, дайте мне отзыв об этом ...
На самом деле, у меня был вызов jQuery ajax, подобный этому:
this.data = {
'action': 'ajax_product_query',
'locations': this.locations,
'type': this.category != '' ? this.category : [],
'all-locations': this.filters['locationFilter'].all.checked,
'page': ajax_obj.current_page
};
$.ajax({
url: ajax_obj.ajaxurl,
method: 'post',
dataType: 'json',
data: this.data,
beforeSend: function(xhr) {
button.innerHTML = 'Loading...';
},
success: (data) => { ...
... и это сработало как шарм ...
Тогда, желая удалить зависимость jQuery, захотел превратить ajax-вызов jQuery в синтаксис Fetch API следующим образом:
fetch(ajax_obj.ajaxurl, {
method: "POST",
mode: "cors",
cache: "no-cache",
credentials: "same-origin",
body: JSON.stringify(this.data),
headers: {
"Content-Type": "application/json"
}
})
.then(response => response.json()) ...
А потом запросы превратились в 400 плохих запросов ...
Спасибо!