我有一個PHP腳本,返回json_encoded反應就是喜歡這樣:AJAX JSON轉換符號到HTML特殊字符
//PHP
$response = array('type' => 'success', 'content' => '&&!%$#!some words');
echo json_encode($response);
return;
現在的JS是在得到響應,並試圖將這些內容在一個textarea:
$('#some_form').ajaxForm({
success: function(resp){
if(resp.type === 'success')
{
$('#text_area').val(resp.content);
}
},
dataType: 'json'
});
腳本的內容將在文本區域顯示爲這樣:
&&!%$#!some words
爲什麼「&」符號被搞亂了,但沒有其他標點符號?有沒有解決的辦法?我希望&符號在文本區域中顯示爲常規符號。
有沒有內置函數來做到這一點,這裏是另一個線程在同一個問題:http://stackoverflow.com/questions/3700326/decode-amp-back-to-in-javascript –
檢查內容json_encode之前的'$ response'變量,我敢打賭這個'&已經在那兒了(或者它是與你的數據混淆的ajaxForm插件) – arnaud576875
@ arnaud576875沒有理由讓PHP使用HTML編碼在一個變量中 - 它不知道你要處理這些數據。 json_encode函數可能導致這種情況,但我懷疑這是在瀏覽器中的某處發生的。 – tomfumb