私はすべてを試しました。ヘルパーのすべての組み合わせraw
、 ::JSON.encode
とCGI.unescape
でいくつかの試みが含まれています。問題は、私が何をしているかに関係なく、整形式のJSONをビューで印刷できないということです。常にHTMLがエスケープされます。有効なエスケープされていないJSONをRailsビューで表示します
はここに私のビューのコードです:私の場合は
var campaignData<%= "=" + (raw @campaign.to_json) if @campaign %>;
、それは常に"ようにエスケープされている引用符です。私は単に引用符でgsubを行うだろうが、それはIMOが非常にシンプルでよく文書化されたユースケースでなければならないものに対するひどい解決策である。
これは安全ではありません。 jsonにより小さい文字列が含まれている場合はどうなりますか?これをスクリプトタグに入れると、誰かが終了スクリプトタグを注入して、任意のコードで新しいスクリプトタグを開始することができます。 json文字列を 'json_escape'にラップする必要があります。しかし、その機能は最近まで壊れていた(レール4.1)。 – Kelvin
はい、私もこれが私のために動作しなかったことが判明したときに@campaign == "" – hrdwdmrbl
THANKS A TON !!! –