Я работаю над сайтом, использующим 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);
КакЯ сказал, немного грязно, но это работает.