WordPress ajax-admin возвращает JSON с открывающим тегом php - PullRequest
0 голосов
/ 16 октября 2018

Я работаю над сайтом, использующим Wordpress, но все ответы от admin-ajax.php имеют открывающий тег php, который выдает ошибки.

Вот пример ответа, когда я пытаюсь найти плагинна странице «Добавление плагинов» WordPress:

<?php{"success":true,"data":{"count":4399,"items":"<input type=\"hidden\" name= ... }}

Кажется, что каждый раз, когда ajax используется на веб-сайте, эта проблема появляется.

Редактировать:

Я немного подробнее рассмотрел свою проблему, и вот что я нашел.

В приведенном выше примере файл, который делает запрос, называется «load-scripts.php».Но проблема возникает с любым ajax-запросом, сделанным WordPress.Например, когда я пытаюсь добавить нового пользователя с помощью формы (используя плагин регистрации пользователей), файл, который делает запрос, называется «user-registration.min.js», а в ответе по-прежнему содержится тег php:

<?php{"success":false,"data":{"message":["Username already exists.","Email already exists."]}}

Редактировать 2:

Я нашел способ исправить мою проблему.Это грязное исправление, но оно работает.Поскольку все мои ответы ajax имели начальный тег php, я решил отфильтровать все ответы ajax и удалить этот тег.

Я просто добавил небольшой код JavaScript для этого.

// Fix php tag in ajax responses
(function($){
 $.ajaxSetup({
 dataFilter: function (response, type) {
    response = response.replace('<?php', '');
    return response;
 }
});

})(jQuery);

КакЯ сказал, немного грязно, но это работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...