4
我有,看起来像一个简单的搜索页面:Rails 3的非侵入式JavaScript - 处理JSON响应
应用程序/视图/搜索/ index.html.erb
<%= form_for @search, :as => :search, :remote => true, :url => {:action => "query"}, :html => {:id => 'search-form'} do |f| %>
...
<% end %
*应用程序/控制器/search_controller.rb*
def index
@search = SearchCriteria.new
end
def query
@search = SearchCriteria.new(params[:search])
unless @search.valid?
respond_to do |format|
format.json { render :json => {:error => 'validation failed'}, :status => 400 }
end
return
end
# otherwise, perform search...
render :json => @results
end
公共/ Java脚本/ application.js中
$(function() {
$('search-form')
.bind('ajax:success', function(e, data, status, xhr) {
console.log("data=" + data);
})
.bind('ajax:error', function(e, xhr, status, error) {
console.log("error json: " + xhr.responseText);
});
})
我遇到的问题是,当我在JSON中渲染400错误时,如何在ajax中获取该JSON:错误处理程序?使用firebug我可以看到数据/消息似乎以xhr.responseText作为字符串存储,而不是JSON。 'ajax:success'处理程序似乎获取'data'参数中的实际JSON数据。
我正在使用Rails 3 + jQuery(UJS)。
优秀的...我只是发现,回来这里之前看到你的答案。另一方面的问题。我有点像默认/标准的钢轨视图显示错误和/或Flash消息。你知道我在哪里可以找到该代码,我想用他们的HTML/CSS显示我的错误。 – codecraig 2011-03-16 10:12:31
对不起,我不熟悉rails。 – 2011-03-16 10:40:58