ほとんどの 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 がもう少しセキュリティを強化するという印象を受けましたか?