В большинстве моих функций AJAX мне нужно дважды закодировать бесплатный текст, введенный пользователем, т. Е. Мне нужно сделать encodeURIComponent (encodeURIComponent (myString)).Двойной код для JSON
Если я делаю это только один раз, большинство символов, кроме двойных кавычек и длинных дефисов.
Если я предупреждаю, что результат из одного кодированного кода закодирован, но он разбивает строку JSON, поэтому я запутался.
Это ошибка с JavaScript или я что-то упускаю? Связано ли это с тем, как вам нужно дважды закодировать амперсанд и PHP, чтобы заставить его работать?
Привет,
Вот код, который позволяет магазин пользовательскому примечание к чему-то:
function saveAdminNote() {
var note = encodeURIComponent(encodeURIComponent($('#adminNote').val().replace(/(\r\n|\n|\r)/gm,""))) ;
JSON = '{"mode":"UPDATE_INTNOTE", "jobid":'+jobId+', "note":"'+note+'"}' ;
clearTimeout(tOut2) ;
tOut2 = setTimeout(function(){
$.ajax({
data: 'dataString='+JSON,
url: 'core/job-builder-controlV2.php',
type: 'POST',
success: function(data){
if(data)
{
$.prompt(data) ;
}
}
})
}, 250) ;
}
Так что, если моя структура данных является плоской, не существует никаких преимуществ используя JSON?
У меня создалось впечатление, что JSON дал немного больше безопасности?
Вы что-то отсутствует, но это трудно сказать, что, как мы не можем видеть код, который создает ваши запросы или генерирует ваш результат. – Quentin
Вам не нужно дважды закодировать. Пожалуйста, покажите нам свой код. – davidethell
Нет, вам не нужно удваивать значения кодировки. Это то, что вы делаете неправильно в своем коде. – deceze