【发布时间】:2011-12-23 10:30:52
【问题描述】:
我知道这是一个愚蠢的问题,并且有非常相似的问题,但没有一个能真正解决我的问题:
#application.js
//= require jquery
//= require jquery_ujs
//= require_tree .
#form
<%= form_for @comments, :remote => true, do |comment| %>
.....
<% end %>
#controller
def create
@comments = Comment.new params[:posts]
if @posts.save
respond_to do |format|
format.html {render 'something'}
format.js {render :content_type => 'text/javascript', :layout => false}
end
end
#app/view/comment/create.js.erb
alert("hello world, please work!");
有了代码,我只想在不刷新页面的情况下添加cmets,并将帖子附加到页面上。无论如何,每当我提交帖子时,它总是会转到“respond_to”format.html 行,我不知道为什么。当我查看生成的表单时,它可以正确读取数据远程集:
<form accept-charset="UTF-8" action="...." data-remote="true" id="..." method="post"
当我查看 HTTP 接受时,它是
HTTP_ACCEPT: "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" even I set the content_type to be text/javascript.
我发现有人说通过添加 charset :content_type => 'text/javascript;charset=UTF-8' 会有所帮助,但它没有任何魔力。
我也尝试将它添加到 application.js 中,但也没有任何魔法
$(function() {
$.ajaxSetup({
'beforeSend': function(xhr) {
xhr.setRequestHeader("Accept", "text/javascript");
}
});
});
有人可以指导我吗?顺便说一句,我的 Webbrick 服务器中的错误显示“406 不可接受的错误”。我对此感到非常沮丧。我怀疑是我做错了内容类型...
【问题讨论】:
标签: jquery ruby-on-rails ajax content-type