簡體   English   中英

如何安全地使用JSON.stringify

[英]how to safely use JSON.stringify

我得到一個JSON對象,然后我將其字符串化為var embed。 console.log看起來像:

console.log(send_me_along)

{"provider_url":"https://www.site.com/","description":"Stuff, you’ll need to blah blah","title":"Person detail view & engagement","url":"https://www.site.com/","version":"1.0","provider_name":"site","type":"link"}

然后在ajax beforeSend中我嘗試傳遞這個:

settings.data += '&embed_data=' + send_me_along;

這就是它破裂的地方。 我不知道為什么。 你呢? send_me_along中斷的東西,JSON對象永遠不會成為rails。

Started POST "/st" for 127.0.0.1 at 2012-01-12 17:20:25 -0800
Parameters: {"utf8"=>"✓", "authenticity_token"=>"MzDImoksi56IZ1Fa4ldM8jaFyBy61xaWt4bf3z0/3UQ=", "comment"=>{"content"=>"https://www.site.com", "mentions"=>"https://www.site.com"}, "commit"=>"", "embed_data"=>"{\"provider_url\":\"https://www.site.com/\",\"description\":\"Stuff, you’ll need to blah blah.\",\"title\":\"Person detail view ", "engagement\",\"url\":\"https://www.site.com/\",\"version\":\"1.0\",\"provider_name\":\"site\",\"type\":\"link\"}"=>nil, "id"=>"ae86c5b7a6"}

似乎標題中的&正在弄亂帖子。 當使用settings.data不允許字符串化數據破壞所有內容時,是否需要使用jQuery進行某些操作?

謝謝

如果您嘗試將一串JSON作為url參數傳遞,則需要對其進行編碼,以便在url(如&符號)中具有含義的特殊字符不會破壞事物。 所以類似於:

settings.data += '&embed_data=' + encodeURIComponent(send_me_along)

有關MDN上的encodeURIComponent()更多信息。

使用encodeURIComponent對數據進行編碼。

settings.data += '&embed_data=' + encodeURIComponent( send_me_along );

為什么不在調用ajax時將數據設置為對象?

$.ajax(
  //...
  data: {
     stuff: "something"...
  }
);

讓jquery處理&符號。

暫無
暫無

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

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