在我的rails 4项目中,我使用POST和jquery这样提交数据(注意,咖啡脚本):
post_data =
site_id: site
url: '//' + $('#host-holder').data('host') + '/' + key
$.post("/sites/" + site + "/images",post_data, (success) ->
#successful_post
).fail( (xhr, textStatus, errorThrown) ->
#post failed
)
在我的控制器中,如果我这样做:
respond_to do |format|
format.js {render nothing: true}
end
POST提交工作正常(在ajax客户端运行中成功回调),但如果我这样做:
respond_to do |format|
format.js {render json: @image.to_json, status: :created}
end
失败(ajax客户端运行失败回调)。
为什么?我在回应ajax请求时做错了什么? (注意:服务器端没有报告错误)
编辑:错误是" parsererror
",我实际上有整个对象!它说"missing ; before statement"
...这是响应对象:"{"id":24,"url":"<EDITED FOR SECURITY>","thumbnail":null,"status":null,"site_id":28,"created_at":"2014-10-05T02:53:50.030Z","updated_at":"2014-10-05T02:53:50.030Z","quality":"good"}"
答案 0 :(得分:0)
这里你的ajax声明应该是这样的,
$.ajax({
URL: '/controller_name/action_name', // url must be proper
type: 'POST',
data: { username: 'test' },
success: function(response){
alert(response);
},
})
在Route.rb中:
post '/action_name' => 'controller_name#action_name'
在控制器文件中:
def action_name
@username = params[:username]
data = {:message => "Alert this!"}
render :json => data
end