0

我正在使用 Rails 3。我真的有一个奇怪的问题。我有一个国家/地区列表作为选择框,并且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>')
    }
});
4

2 回答 2

3

尝试将dataType选项设置为 ajax 调用:

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

编辑添加的逗号

于 2013-10-01T13:00:46.593 回答
2

根据我的经验,HTTP 302 是由于身份验证问题。您应该考虑发布您的控制器代码/路由和任何身份验证以及可能发生的任何错误。

于 2013-10-01T12:55:26.400 回答