Привет!
Столкнулся с такой проблемой:
Пытаюсь сделать запрос с помощью Fetch() для отправки запроса и передачи данных в формате JSON в Wordpress
Использую первый способ отправки:
let params = {
action: 'ajax_get_taxonomies',
nonce_code : _fg_object.getTaxAJAX_nonce,
params: JSON.stringify([1,2,3])
}
try {
const response = await fetch(_fg_object.ajax_url,
{
method: 'POST',
headers: {'Content-Type': 'application/x-www-form-urlencoded'},
body: new URLSearchParams(params)
})
if (response.ok) {
const data = await response.json();
console.log(data.taxonomies);
} else {
console.error("Error HTTP: " + response.status);
}
}
catch(e) {
console.error('Error occurred!')
}
При использовании объекта
new URLSearchParams(params) все успешно отправляется
Но когда использую другой способ отправки с использованием JSON.stringify() данные не отправляться и получаем ошибку 400 (Bad Request)
const response = await fetch(_fg_object.ajax_url,
{
method: 'POST',
headers: { "Content-Type": "application/json", },
body: JSON.stringify({
action: "ajax_get_taxonomies",
nonce_code : _fg_object.getTaxAJAX_nonce,
data: {
username: "JohnDoe",
message: "Hello from fetch!"
}
}),
})
В чем может быть проблема? С использованием body: new URLSearchParams(params) все работает, а когда отправляем через тело запроса body: JSON.stringify({}) - нет
Спасибо за любой совет.