#javascript #php #jquery #ajax #wordpress
#javascript #php #jquery #ajax #wordpress
Вопрос:
Я пытаюсь передать простую строковую переменную с событием onclick, запрос выполнен успешно, но я получаю пустой ответ на консоли, и xvar
переменная не проходит, поэтому я получаю тег «НЕТ ДАННЫХ» p
. Я впервые использую Ajax, поэтому я постарался сделать его очень простым для запуска. Вот мой код:
JS
var xvar = 'D';
$('.test').click( () => {
$.ajax({
data: { xvar : xvar },
type: "POST",
url: 'test.php',
success: function(data, textStatus, XMLHttpRequest)
{
console.log('Success: ' data)
},
error: function(XMLHttpRequest, textStatus, errorThrown){
console.log("The request failed." errorThrown);
}
});
});
test.PHP
$xvar = (isset($_POST['xvar'])) ? $_POST['xvar'] : '<p>NO DATA</p>';
echo $xvar;
Я использую jQuery 3.5.1, который входит в состав WordPress. Я буду признателен за любую обратную связь.
РЕДАКТИРОВАТЬ Мне удалось получить ответ test.php
, как показано здесь:
Но я, когда пытаюсь отобразить значение с print_r
помощью, не отображается.
$res = $_POST;
print_r($res);
Комментарии:
1. Я не могу воспроизвести эту проблему. Можете ли вы проверить точную версию jQuery, которая включена в комплект поставки? Вы должны быть в состоянии увидеть это в исходном коде страницы. Примечание: нет необходимости определять ключ, если у него то же имя, что и у вашей переменной. Простого указания
data: { xvar }
должно быть достаточно.2. Вы действительно можете просто определить
data: { xvar }
, но это не рекомендуется, потому что в некоторых браузерах это приводит к ожидаемой ошибке «‘:'», например, IE.3. Это jQuery 1.12.4
4. Используйте вкладку Network инструмента разработчика браузера, чтобы просмотреть запрос Ajax и его необработанный ответ. Что вы видите?
5. Я получил этот ответ
{"wp-auth-check":true,"server_time":1608029785}
от admin-ajax.php . «В этом запросе нет доступных данных» из test.php .
Ответ №1:
В data
вашем Ajax попробуйте добавить кавычки в ключ данных. Вот так:
data: { "xvar" : xvar },
Комментарии:
1. Это не должно повлиять на результат.