不允许GET请求的替代方法

时间:2014-09-18 13:15:47

标签: ruby-on-rails ajax get routes

你好,什么是不允许来自浏览器的GET请求的替代方法。

这是相关问题:Ajax request sent via GET even if method is POST

我有这个ajax请求:

$(".vehicle_make_dropdown").on "change", ->
    $.ajax(
      url: "/get_maker_models"
      data:
        maker: $("#entry_vehicle_make").val()
      type: "GET"
      dataType: "JSON"
    ).success( (json) ->
      i = 0
      $(".vehicle_model_dropdown").html("")
      $(".vehicle_model_dropdown").prop("disabled", false)
      while(i < json.length)
        $(".vehicle_model_dropdown").append("<option value='#{json[i]["title"]}'>#{json[i]['title']}</option>")
        i++
    ).error( (resp) ->
      console.log("error")
    )

和这条路线:

get "get_maker_models" => 'credit_form#get_maker_models'

我怎么能只允许这是ajax请求,所以无法通过浏览器网址访问它。我的意思是当我尝试通过GET访问浏览器获取get_maker_models时不会出现路由错误?

编辑:

替代:

  • request.xhr?

  • match "get_maker_models" => 'credit_form#get_maker_models', via: [:get, :post], constraints: -> (req) { req.xhr? }

还有其他选择吗?

0 个答案:

没有答案