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。dataTypeso 很好地返回 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 次 |
| 最近记录: |