Javascript CGI.unescape和CGI.unescape;我什么也不做

Javascript CGI.unescape和CGI.unescape;我什么也不做,javascript,ruby-on-rails,ruby,Javascript,Ruby On Rails,Ruby,我收到了一个字符串,作为对get请求的响应 {"revision"=>"r2407", "full_version"=>"2.5 [r2407]", "full_name"=>" [r2407]", "version&

我收到了一个字符串,作为对get请求的响应

{"revision"=>"r2407", "full_version"=>"2.5 [r2407]", "full_name"=>" [r2407]", "version"=>"2.5"}
在js文件中:

$('.output').text('<%=CGI.unescape(@response.to_s)%>')
$('.output').text('')
我仍然用
”和
之类的东西得到相同的字符串。我还尝试了JS unescape(),但它什么也没做。有什么问题吗?

是处理URL编码的字符串

CGI.escape('&')
# => "%26"
CGI.unescape('%26')
# => "&"
改用:


我认为您首先需要使用以下命令将HTML从响应中解压出来,然后使用以下命令将其转义为JavaScript:

$('.output').text('')

试过了。仍然没有效果。控制器中实际上有这样一行:
response.body=CGI.unescape\u html(response.body)
这可能是个愚蠢的问题,但是您的文件是否有.erb扩展名?@BroiSatse是的,它是js.erb
CGI.unescape_html('&gt;')
# => ">"

body = '{&quot;revision&quot;=&gt;&quot;r2407&quot;, &quot;full_version&quot;=&gt;&quot;2.5 [r2407]&quot;, &quot;full_name&quot;=&gt;&quot; [r2407]&quot;, &quot;version&quot;=&gt;&quot;2.5&quot;}'
CGI.unescape_html(body)
# => {"revision"=>"r2407", "full_version"=>"2.5 [r2407]", "full_name"=>" [r2407]", "version"=>"2.5"}
$('.output').text('<%=j CGI.unescape_html(@response.to_s)%>')