Я делаю вызов AJAX с jQuery скрипту PHP, который должен вернуть код javascript, встроенный в результат JSON для выполнения jQuery-кода. Как мне пройти код javascript в JSON?Передача javascript-кода в JSON
ответ
Два способа:
- Вы должны передать его в виде строки и использовать
eval()
на стороне клиента. - Вы можете использовать JSONP, и вместо того, чтобы делать вызов, попросите свой скрипт на стороне клиента вставить
<script>
с егоsrc
, указывая на код на стороне сервера, который возвращает новый скрипт.
В любом случае, убедитесь, что вы его хорошо защищаете - если пользователь может каким-то образом вставить свой собственный код в свой ответ, они могут нанести некоторый урон.
Является ли eval медленнее, чем обычный сценарий? Из обоих ваших предложений, что лучше и почему? – Chetan
JSONP будет немного быстрее и используется чаще, но он открыт для атак XSS, если вы не будете осторожны. Сам я тоже не поеду, а вместо этого передам данные, которые описывают, что мне нужно сделать для какой-либо существующей функции (см. Комментарий Дэвида по вашему вопросу). –
Определение JSON не позволяет передавать функции javascript. Он должен быть независимым от языка. Если вы используете парсер JSON, а не eval(), он не будет работать, если JSON содержит какие-либо функции.
Дуглас Крокфорд, который я считаю, придуман термин JSON имеет JSON parser for javascript
Даже JSONP не возвращает функцию, а функция вызова - myFuncIAskedFor({ returned JSON })
Как уже упоминалось, определить свои функции на местном уровне, это самый безопасный вещь
Также используйте анализатор JSON
- 1. Передача Json в WebMethod
- 2. Передача JSON в PHP
- 3. Передача сложной JSON в WebMethod
- 4. Передача функции javascript в JSON
- 5. Передача JSON в событиях OnClick
- 6. Передача «логического» поля в JSON
- 7. Передача & (амперсанд) в AJAX/JSON
- 8. PHP передача JSON в angularjs
- 9. Передача json в сетку кендуй
- 10. Передача JSON в запросе GET
- 11. Передача объекта JSON в MVC
- 12. Передача списка в функции Json
- 13. Разбор «Потоковая передача» JSON
- 14. Передача массива JSON - Android
- 15. REST API JSON-передача
- 16. Безопасная передача данных json?
- 17. Передача JSON через URI
- 18. Передача объекта JSON контроллеру
- 19. Передача коллекции через JSON
- 20. Передача IEnumerable через Json
- 21. Передача ошибки JSON
- 22. json передача нескольких строк
- 23. Передача массива json ajax
- 24. Java Json Передача данных
- 25. Передача json на браузер
- 26. Передача JSON в WebApi в MVC5
- 27. Передача JSON в URL В параметре
- 28. Передача флажков в качестве JSON в JQuery
- 29. Передача JSON в массив в PHP
- 30. Передача JSON на контроллер MVC?
Ваша библиотека ajax должна иметь поддержку сообщений JSON. Что вы используете? – joejoeson
Вы действительно действительно хотите ввести код? В большинстве случаев некоторые предварительно записанные функции в исходной полезной нагрузке JS в сочетании с некоторыми данными, которые описывают, какая функция запускается с помощью каких аргументов, является лучшей ставкой. – Quentin
Я согласен с Дэвидом и Макс С. ... Хороший вопрос. –