Intereting Posts
Вывести мета в массивы Сохранение исходного размера изображения Измените css для боковых панелей, если присутствует на веб-странице? Нелатинские символы в постоянных ссылках Вторичная разбивка по страницам изменяет URL, а не содержимое Как установить минимальную длину для имени пользователя в Woocommerce? Добавление шаблона в WPTouch Понимание темы WordPress по умолчанию – двадцать четыренадцать.1.4 >> Папка языков Почему указание «about-us» в качестве цели ссылки занимает больше времени, чем указание «about-us /»? Целевые страницы с использованием шаблона страницы одного продукта Woo Commerce Видя «ошибка» как текст на белом при доступе к администратору Включить заголовок сообщения в ссылку readmore? Как получить все вложения, которые используются в текущем сообщении, а не только для детей? Изменить URL-адрес поискового модуля PHP5, Inheritance, Singleton – ограничение действия и фильтра

Создание запроса ajax из другого домена

Я делаю запрос ajax из моего основного домена в субдомен. Я решил проблемы с перекрестным происхождением, поэтому я не получаю ошибку. Вызов возвращает data:0 . Я проверил конфигурацию своего ответа и правильный URL-адрес ajax, а также «действие». Мои functions.php выглядят так:

 add_action("wp_ajax_sendhire", "sendhire"); add_action("wp_ajax_nopriv_sendhire", "sendhire"); function sendhire() { $cars = array("Volvo", "BMW", "Toyota"); return json_encode($cars); die(); } 

Данные, очевидно, предназначены только для тестирования.

Solutions Collecting From Web of "Создание запроса ajax из другого домена"

Если вы хотите использовать Admin-Ajax для вывода содержимого, вы должны использовать echo . Нет ничего, что можно было бы увидеть, когда вы используете return , так что вы получите 0 .

Эта цитата из кодекса дополнительно объясняет ответ 0 :

Если запрос Ajax завершится с ошибкой в wp-admin/admin-ajax.php , ответ будет равен -1 или 0, в зависимости от причины сбоя. Кроме того, если запрос выполняется успешно, но действие Ajax не соответствует крюку WordPress, определенному с помощью add_action('wp_ajax_(action)', ...) или add_action('wp_ajax_nopriv_(action)', ...) , тогда admin-ajax.php ответит 0.

Теперь, если вы собираетесь выдать ответ JSON, вы должны взглянуть на REST API. Его тип ответа по умолчанию – JSON.

Для этого зарегистрируйте путь для конечной точки и создайте функцию обратного вызова:

 add_action( 'rest_api_init', function () { register_rest_route( 'dcp3450', '/test_endpoint/', array( 'methods' => 'GET', 'callback' => 'sendhire' ) ); }); function sendhire() { $cars = array("Volvo", "BMW", "Toyota"); return $cars; } 

Теперь, получив доступ к http://example.com/wp-json/dcp3450/test_endpoint/ вы получите ответ JSON, и вы можете избавиться от этого досадного 0, следующего за человечеством до конца.