Как правильно десериализовать JSON.stringify, полученный из запроса AJAX в PHP?

Отказ от ответственности: я читал и искал довольно много.

Я создаю свои данные для отправки через AJAX следующим образом:

var plugin_data = [
    plugin_action_button.attr('data-action-to-take'),
    plugin_action_button.attr('data-plugin-slug')
];
requestPluginAction( JSON.stringify(plugin_data) );

Если я использую console.info, то это означает:

["activate","handle"]

Если мне нужно вернуть то, что видит PHP, вот что это:

[\"activate\",\"handle\"]

Теперь, запустив простой json_decode с этой строкой:

check_ajax_referer( 'plugin_routines', 'security' );
$data = sanitize_text_field( $_POST['plugin_install_request_data'] );
wp_send_json( json_decode( $data ) );

Возвращает null.

Много чего перепробовала. json_decode с установленным true, просто возвращая нефильтрованное значение, полученное от AJAX, и т. д.

Но никто не работает.

В конечном итоге я хочу преобразовать этот JSON в массив PHP.

Возвращает значение, закодированное в json, соответствующего типа PHP. Значения true, false и null возвращаются как TRUE, FALSE и NULL соответственно. NULL возвращается, если json не может быть декодирован или если закодированные данные глубже, чем предел рекурсии.
Script47 08.06.2018 02:31

@ Script47 Имеет смысл, но я все еще не вижу решения.

coolpasta 08.06.2018 02:34

Я не думаю, что вам нужен sanitize_text_field() для данных JSON. В вашем экземпляре PHP включены магические кавычки?

Phil 08.06.2018 02:35

Не видя всего вашего кода, это может быть функция дезинфекции, которая может вызывать его, но, опять же, это всего лишь предположение.

Script47 08.06.2018 02:35

Я почти уверен, что Фил прав. Не дезинфицируйте данные перед их отправкой или обработкой.

Machavity 08.06.2018 02:39

@ Фил: Отвратительно. Это сработало. Ага, это было правильно. Огромное спасибо. Не пишите код в 6 утра.

coolpasta 08.06.2018 02:40

@coolpasta Вау, у вас должна быть очень старая версия PHP. magic_quotes_gpc не является допустимой конфигурацией с PHP 5.3.

Phil 08.06.2018 02:41
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
7
62
0

Другие вопросы по теме