gpt4 book ai didi

jquery - Rails UJS 在 IE 中渲染 js.erb 模板

转载 作者:行者123 更新时间:2023-12-01 01:39:23 27 4
gpt4 key购买 nike

我有一个运行 Rails 2.3.8 的 RoR 应用程序,它使用 Rails 3 风格的 UJS 来绑定(bind)数据远程表单,而不是使用 form_for_remote, Controller 使用来自服务器的 js.erb 文件进行响应。

在 FF、Chrome 和 Safari 中运行良好,但在 IE 中运行时会提示您保存文件,并且不执行 JS。到目前为止,我的研究尚未发现任何可能的原因,因此我们将不胜感激任何帮助!

这是我的 Controller 操作:

  def create
@note = Note.create(params[:note].merge(:author_id => current_user.id))
respond_to do |format|
format.js {}
end
end

我也尝试过这个而不是respond_to block ,它具有相同的结果:

render :template => "notes/create.js.erb", :content_type => 'text/javascript'

还有我的 create.js.erb:

$('#notes').append('<%= escape_javascript(render(:partial => "notes/note", :locals => {:note => @note}))%>');
$('.new_note textarea').val('');

这一切都非常简单,我真的不明白 IE 出了什么问题。

感谢您的帮助!

编辑:

发布注释的表单:

<% form_for @note, :url => notes_path, :html => { 'data-remote' => true, :class =>         
'new_note'} do |f|%>
<%= f.hidden_field :parent_id %>
<%= hidden_field_tag :note_type, note_type%>
<%= f.text_area :body, :size => size%>
<br/>
<%= f.submit "Add Note"%>
<% end %>

以及rails.js的相关部分:

$('form[data-remote]').live('submit', function (e) {
$(this).callRemote();
e.preventDefault();
});

/**
* Handles execution of remote calls firing overridable events along the way
*/
callRemote: function () {
var el = this,
method = el.attr('method') || el.attr('data-method') || 'GET',
url = el.attr('action') || el.attr('href'),
dataType = el.attr('data-type') || 'script';

if (url === undefined) {
throw "No URL specified for remote call (action or href must be present).";
} else {
if (el.triggerAndReturn('ajax:before')) {
var data = el.is('form') ? el.serializeArray() : [];
$.ajax({
url: url,
data: data,
dataType: dataType,
type: method.toUpperCase(),
beforeSend: function (xhr) {
el.trigger('ajax:loading', xhr);
},
success: function (data, status, xhr) {
el.trigger('ajax:success', [data, status, xhr]);
},
complete: function (xhr) {
el.trigger('ajax:complete', xhr);
},
error: function (xhr, status, error) {
el.trigger('ajax:failure', [xhr, status, error]);
}
});
}

el.trigger('ajax:after');
}
}

服务器响应:Content-Type:text/javascript;字符集=utf-8

我尝试为rails.js helper显式设置数据类型,但这并没有改变任何东西。

最佳答案

显然这里的解决方案是换入不同版本的rails.js

不知道为什么我的那个不起作用,但看起来这不是上面任何代码中的错误。

关于jquery - Rails UJS 在 IE 中渲染 js.erb 模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3791812/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com