【问题标题】:Render js.erb for XHR request为 XHR 请求渲染 js.erb
【发布时间】:2011-01-06 01:48:17
【问题描述】:

我想设置 rails 来默认为 xhr 请求渲染 .js.erb 文件。

【问题讨论】:

    标签: javascript ruby-on-rails ajax xmlhttprequest


    【解决方案1】:

    如果您使用的是 jQuery,请从此处 https://github.com/rails/jquery-ujs 将您的 rails.js 更新为最新版本,并使用以下命令设置 ajax 调用的默认请求标头:

    $(function() {
        jQuery.ajaxSetup({
            beforeSend: function(xhr) {
                xhr.setRequestHeader("Accept", "text/javascript");
            }
        });
    });
    

    这是一个最近的提交供参考:https://github.com/rails/jquery-ujs/commit/fbbefa0773d791d3a67b7a3bb971c10ca750131b

    【讨论】:

    • 这似乎是正确的解决方案,但这仍然没有设置接受标头
    • 你从 github 更新 rails.js 了吗?对我来说它工作正常。
    • 对于远程链接它可以工作,但对于远程表单它仍然不能。
    • 普通脚手架和此更改<%= form_for(@car, :remote => true) do |f| %>。对我来说正常工作。您能否添加一些对您的问题不起作用的最小示例?
    • 提交远程表单时不会调用BeforeSend 函数。还在调试,奇怪。
    猜你喜欢
    • 1970-01-01
    • 2016-12-30
    • 1970-01-01
    • 2013-07-06
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 2021-03-21
    • 2020-04-13
    相关资源
    最近更新 更多