2013-01-02 52 views
7

我想要我的控制器操作来处理来自jquery $.getJSON的jsonp请求。在我的控制器动作,我有以下respond_to代码块:在rails 3中处理jsonp控制器

respond_to do |format| 
    format.html { render json: {:items_by_tag => @tagged_item_list}} 
    if params[:callback] 
     format.js { render :json => {:items_by_tag => @tagged_item_list}.to_json, :callback => params[:callback] } 
    else 
     format.json { render json: {:items_by_tag => @tagged_item_list}} 
    end 
end 

但是我却越来越SyntaxError:invalid label当我从$.getJSON调用的URL。我的网址是http://myservice.com?param1=a&param2=b&callback=?
我的代码导致jsonp失败的问题是什么?

回答

19
respond_to do |format| 
    format.html { render json: {:items_by_tag => @tagged_item_list}} 
    if params[:callback] 
    format.js { render :json => {:items_by_tag => @tagged_item_list.to_json}, :callback => params[:callback] } 
    else 
    format.json { render json: {:items_by_tag => @tagged_item_list}} 
    end 
end