Intereting Posts
Сеть WordPress на сервере IIS7 / SQL Server – перепишите проблемы Как повторно отправить старое сообщение? Как настроить сервер разработки (локальный) и тестовый / производственный сервер (удаленный) Мне нужно создать форму поиска, которая будет отображать результаты поиска из определенной категории Как добавить поисковый запрос в запрос Как остановить синтаксис синтаксиса wordpress '<-'? База данных для разработки грубая силовая атака, хотя она ограничена IP WordPress: Справка по петле Functions.php – Невозможно изменить информацию заголовка SOLVED Фильтрация сообщений несколькими пользовательскими правилами таксономии с использованием оператора AND в REST API v2 (WordPress) Как отобразить новый статус сообщения? Можно ли просмотреть предыдущую ревизию? Как изменить атрибут title "Просмотреть все сообщения в категории" Отдельные темы 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?"