Intereting Posts
Как реплицировать некоторые функции Drupal Views в WordPress? Почему переходные процессы очищаются преждевременно? Не удается найти кнопку «Добавить новую» для тем в многопользовательском режиме Работа WordPress Function update_post Невозможно отобразить заголовки таблиц в ответном расположении таблицы Wp_Nav_Menu – определить последний пункт меню Как отфильтровать описание метакатализатора excerpt в admin? Архив настраиваемого почтового типа (archive- {post-type} .php) не работает JQuery не загружается / работает на домашней странице WordPress Самый простой способ запроса с помощью blog_id? Добавление расширения файла во временный файл Класс WP_Widget не найден Каков наилучший способ связать несколько изображений с одной страницей? привет, я не могу понять, как выводить динамически генерируемые поля ввода на страницу WordPress на лицевой стороне Вопрос о запросах сообщений

Как правильно использовать wp.ajax.post?

После битвы за тишину, когда функции wp utils отправляются и публикуются. В конце концов, я не смог заставить одного из них нормально работать.

Но мне удалось получить ответ, однако я не знаю, почему это работает, и другие вещи, которые я пробовал, не сделали.

Для этой темы PHP не имеет значения. Чтобы предотвратить любые недоразумения, рассмотрим, что я использую следующий PHP:

add_action('wp_ajax_example_action', function() { if (!empty($_REQUEST['foo'])) { print 'Foo: '.$_REQUEST['foo']; } wp_die(); }); 

Javascript, который ВСЕГДА возвратил весь напечатанный / эхом текст в запущенной функции php, независимо от того, какие условия были выполнены.

 $('.some-button').click(function(e)) { e.preventDefault(); window.wp.ajax.send('example_action', { data: { foo: $('.some-field').val() }, error: function( response ) { console.log(response) } }); 

Здесь результат простого теста:

 |================================================| | $('.some-field').val() | console.log(response) | |------------------------|-----------------------| | "bar" | "Foo: bar" | | "" | "Foo: " | |================================================| 

Я пробовал много вещей с помощью метода send() а также с методом post() . Но ничего не работает, если это не похоже на javascript выше. Да, он работает только с error свойства, а не с done или success ни с fail ни с fail .


Редактировать # 1

Посмотрите на следующий код, где я объясню, что происходит с кодом, который не возвращает ответ.

 let post = window.wp.ajax.post('example_action', { foo: $('.some-field').val() }); console.log(post); // logs: {state: ƒ, always: ƒ, then: ƒ, promise: ƒ, pipe: ƒ, ...} post.done(function(v) { // won't be executed console.log(v); }); 

Однако в разделе сети моего инструмента разработчика правильно отображаются запрос и ответ.

Solutions Collecting From Web of "Как правильно использовать wp.ajax.post?"