簡體   English   中英

從php json_encode到jQuery解碼

[英]From php json_encode to jquery decode

我使用了眾所周知的“ hack”(json編碼功能)來防止某些字符弄亂我的html,我從API接收到一個可以包含單引號或雙引號(以及其他特殊字符)的描述字段。 所以:

<div class="someThing" data-fulldescription=<?=json_encode($textFromApi);?>>
  ...
</div>

現在,我使用jquery讀取該數據字段,然后在div中打印它:

$('#brand-modal-content').html($(this).parents('.someThing').data('fulldescription'));

問題是,引號現在由PHP函數編碼,並且某些字符被“ \\ u00e8”或“ \\ u00f9”替換,有沒有辦法使用jquery重新格式化文本?

您正在以非常錯誤(甚至不安全)的方式將內容注入HTML。 改為這樣做:

data-fulldescription="<?=htmlspecialchars(json_encode($textFromApi));?>"

這樣,無論內部內容如何,​​JSON都將被正確編碼並安全地注入。 然后,您可以像這樣解碼它:

var decoded = JSON.parse($(this).parents('.someThing').data('fulldescription'));

這些步驟的組合將完美地保留JSON,無論它代表什么(如果您假設它是字符串,都可以使用快捷方式,但是為什么不總是100%安全?)。 然后,您可以對解碼后的值進行任何操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM