jon*_*hue 5 javascript ajax ruby-on-rails respond-to ruby-on-rails-5
当使用 ajax 请求从 Rails 控制器操作获取响应时,我遇到了一些奇怪的行为。
$.ajax({
type: 'GET',
url: '/notifications',
success: function(result) {
eval(result);
}
});
Run Code Online (Sandbox Code Playgroud)
$.ajax({
type: 'GET',
url: '/notifications',
success: function(result) {
eval(result);
}
});
Run Code Online (Sandbox Code Playgroud)
因此,当使用带有railsremote: true
选项的请求时,这个respond_to块工作得很好,但是使用ajax调用时,它只是将请求重定向到root_url
.
当指定Ajax 请求时json
。dataType
so 很好地返回 JavaScript,但由于它无效json
,因此eval()
不会运行它。
有没有办法从 JavaScript 中启动 Rails 远程请求或指定返回的 JavaScript 可执行的数据类型?
即使在 ajax 调用中指定也dataType: 'text/javascript',
无法解决问题。
因此,当使用带有 Rails'remote: true 选项的请求时,此 respond_to 块工作正常,但使用 ajax 调用时,它只是将请求重定向到 root_url
因此,到达控制器的请求格式HTML
不是JS
. 使用dataType: 'script'
生成请求 asJS
应该可以解决您的问题。
$.ajax({
type: 'GET',
dataType: 'script',
url: '/notifications'
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3102 次 |
最近记录: |