$.ajaxでリクエストを出して、データをviewのjs.erbで受けようとしていますが、
データにかけられたエスケープ処理が元に戻りません。
js.erbのviewsで、普通に使える連想配列にしたいのですが、どのようにしたらよいのでしょうか。
JS
1$(() => { 2 var fd = new FormData(); 3 fd.append('jsondata', JSON.stringify({ "S": ["1", "2", "3"], "A": ["4", "5"] })) 4 5 $.ajax({ 6 type: "POST", 7 beforeSend: function (xhr) { 8 xhr.setRequestHeader('X-CSRF-Token', 9 $('meta[name="csrf-token"]').attr('content')) 10 }, 11 url: "/manage/search", 12 data: fd, 13 dataType: "script", 14 processData: false, 15 contentType: false, 16 }); 17})
ruby
1#app/controllers/manage 2 def search 3 @data = params[:jsondata] 4 end
js
1// app/views/manage/search.js.erb 2 console.log("<%= @data %>")
search.js.erbが実行される際に、コンソールに表示されるデータ
{"S":["1","2","3"],"A":["4","5"]}
やってみたこと
- console.log("<%= JSON.parse(@data) %>")としてみた。
- console.log("<%= CGI.unescapeHTML(@data) %>")としてみた。
どちらもコンソールに表示されるデータに変化がありませんでした。
何卒よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/06 15:17 編集
2019/12/06 23:51
2019/12/07 05:05 編集