Как я могу получить to_json, чтобы избежать косой черты - PullRequest
5 голосов
/ 25 июля 2011

В рельсах, если я позвоню "</script>".to_json, результат будет "\"</script>\"". Ни угловые скобки, ни передние косые черты не исключаются. Есть ли способ заставить to_json избежать этого?

Этот маленький фрагмент кода демонстрирует проблему:

<%= javascript_tag do %>
var a = <%= raw("</script>".to_json) %>;
alert("hi");
<% end %>

Это дает следующий вывод:

<script type="text/javascript"> 
//<![CDATA[

    var a = "</script>";
    alert("hi");

//]]>
</script>  

В этом случае тег сценария закрывается преждевременно. У кого-нибудь есть хорошее решение?

Ответы [ 2 ]

6 голосов
/ 09 февраля 2012

Косые черты можно удалить с помощью JSON.parse ().

Прежде всего вам необходимо извлечь тело из полученного ответа.

response_body = response_you_get_after_request.body

затем передайте ответ в качестве аргумента следующим образом: -

 filtered_response = JSON.parse(response_body). 
0 голосов
/ 09 февраля 2012
<%= raw escape_javascript("</script>".to_json) %>

производит ...

\"<\/script>\"

Это то, что вы ищете?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...