在我的大多数 AJAX 函数中,我必须对用户输入的自由文本进行双重编码,即我必须执行 encodeURIComponent(encodeURIComponent(myString))。
如果我只做一次,除了双引号和长连字符之外的大多数符号都有效。
如果我从单个编码中警告结果,引号被编码,但它会破坏 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 提供了更多的安全性?