我想用ajax从我的控制器获取信息。Rails ajax不返回json格式
但它没有像我期望的那样返回json。也许我不是路由冲突,但不确定。
我的控制器:
class TicketsController < ApplicationController
before_action :authenticate_user!
respond_to :js, :json, :html
//...
def fill_category_select
@category_by_system = Category.where(system_id: params[:sent_id])
render json: @category_by_system
end
我的routes.rb:
resources :tickets
get 'tickets/fill_category_select/:sent_id', to: 'tickets#fill_category_select'
我在HAML文件脚本:
:javascript
$(document).ready(function(){
$('#ticket_system').change(function(){
$.ajax({
url: "fill_category_select",
type: "GET",
dataType: "json",
data: { sent_id: $('#ticket_system').val() },
async: true,
success: function(data, textStatus, xhr) {
for(var i in data){
var id = data[i].id;
var title = data[i].description;
$("#ticket_category").append(new Option(title, id));
}
},
error: function(XMLHttpRequest, errorTextStatus, error){
alert("Failed: "+ errorTextStatus+" ;"+error);
}
});
});
});
当我触发事件,并做了要求它是:
REQUEST URL: http://localhost:3000/tickets/fill_category_select?sent_id=44
REQUEST METHOD: GET
STATUS CODE: 200 OK
TYPE: html
和错误恢复和显示的JavaScript警告是:“语法错误:JSON.parse:第1行的JSON数据的第1列意外的字符”
这就像没有hiting我fill_category_select,因为我”我试图提出'错误',它只是显示相同的错误。
有没有人可以给我一个方向?
----------编辑
我发现路线不起作用。
当我添加的资源:门票,除了:[:秀]
请求给我带来了“404错误”,它不是一个单纯的覆盖问题,路由不工作。
我仍然需要发现我做错了什么。任何建议?
如果您将网址与** JSON **到以JSON格式强制它,它会工作吗?例如:** fill_category_select.json **。 –
是的,即使我在请求中放入.json,响应仍然是html。 –