javascript encodeURIComponent и побег?

Я использую JS для отправки строки encodeURIComponent в файл PHP-файла и работает отлично в течение многих лет; до недавнего времени я встретился со странным эффектом, что текст нуждается в дальнейшей кодировке с побегом, чтобы заставить его работать! Симптом начинает проявляться только тогда, когда я использую редактор wysiwyg с открытым исходным кодом!

Что может быть нарушающими символы в URI, которые нуждаются в побеге, чтобы исправить это? Раньше я думал, что URI только резерв? & = для его синтаксиса для работы.

javascript,escaping,encodeuricomponent,

0

Ответов: 1


0

Описываемая вами ситуация может быть объяснена - хотя нет никакого способа узнать, если вы не сообщите нам, что такое строка, и как она используется, по адресу http : //me.com?url=http://you. com? qp = 1, который включает в себя два уровня вложенных значений, похожих на you.com.

Рассмотрим URL-адрес, содержащий параметр запроса, который является другим URL-адресом:

http://me.com?url=http%3A%2F%2Fyou.com%3Fqp%3D1

Этот URL-адрес подвержен неправильной интерпретации, поэтому мы обычно URL-кодируем URL- urlадрес, предоставляя нам:

http%3A%2F%2Fyou.com%3Fqp%3D1

Тот, кто работает с этим URL-адресом, теперь может извлекать параметр запроса urlс именем you.com, декодировать его (часто фреймворк или библиотека расшифровывает его для вас), а затем использовать его для перехода или вызова этого URL-адреса.

Рассмотрим, однако, тот случай, когда сам ?qp=1URL имеет параметр запроса, а не как приведенный в первом примере, а скорее то, что само по себе должно быть закодировано в URL. Чтобы все было просто, мы просто используем «cat? Pictures». Нам нужно было бы закодировать это, сделав параметр запроса?qp=cat%3Fpictures

Другими словами, этот URL-адрес будет

http://me.com?url=http%3A%2F%2Fyou.com%3Fqp=cat%3Fpictures

Если мы просто используем это как есть, тогда весь наш URL-адрес становится

http://me.com?url=http://you.com?qp=cat?pictures

К сожалению, если мы сейчас декодируем это наивным образом, мы получим

url

Другими словами, вложенной URL декодирован, а это означает , что он будет думать , что URL имеет два paramters запроса, а именно url и qp . Чтобы успешно справиться с этой проблемой, нам нужно еще раз закодировать второй параметр запроса,

http://me.com?url=http%3A%2F%2Fyou.com%3Fqp%3Dcat%253Fpictures

Обратите внимание, однако, что если вы используете встроенные инструменты и библиотеки языка или среды для обработки параметров запроса, большинство из них произойдет автоматически и не позволит вам беспокоиться об этом.

Симптом начинает отображаться только тогда, когда я использую редактор wysiwyg с открытым исходным кодом

Редактор просто помещает символы в файл. Очень сложно представить, что редактор вызывает проблему, о которой вы говорите, если, возможно, один редактор не настроен на использование смарт-кавычек, например, что в значительной степени нарушит все, что связано с кавычками.

JavaScript, побег, encodeuricomponent,
Похожие вопросы