簡體   English   中英

Rails Action呈現html而不是json

[英]Rails Action rendering html instead of json

我正在使用Rails3。我確實有一個奇怪的問題。 我有一個國家(地區)列表作為選擇框,並且在狀態選擇框更改時已將jquery's $.ajax({})連接起來。

該操作將狀態代碼作為參數,並返回屬於特定狀態的地區。 當請求發送到/districts?state=1 ,它以302(found)的狀態碼進行響應,然后還發送當前的html頁面作為響應。

以下是我的代碼:

# Controller Action

def districts
  state = params[:state]

  respond_to do |format|
    format.json{ render :json => get_districts(state) }
  end
end


# jQUery Request:

$.ajax({
    url: '<%= districts_path %>',
    data: {state: 1},
    success: function(data){
        for(i in data){
            options += '<option value="'+data[i].code+'">'+data[i].district+'</option>'
        }

        $("#some_element").html('<select id="some_district" name="some_district">'+options+'</select>')
    }
});

嘗試將dataType選項設置為ajax調用:

$.ajax({
    url: '<%= districts_path %>',
    dataType: 'json',
    data: {state: 1},

編輯添加的逗號

以我的經驗,HTTP 302是由於身份驗證問題引起的。 您應該考慮發布您的控制器代碼/路由,任何身份驗證以及可能發生的任何錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM