簡體   English   中英

Rails:確保在Controller中收到來自jQuery的$ .post作為format.json

[英]Rails: ensure that $.post from jQuery is received as format.json in Controller

我有一個jQuery腳本試圖發布數據,如下所示:

$.post({
    $('div#location_select').data('cities-path'),
    { location_string: $('input#city_name').val() },
});

這有效,但由於某種原因,服務器將其作為HTML請求而不是JS請求接收。 是什么賦予了? 這是我的控制器中的響應塊:

if @city.save
    respond_to do |format|
        format.html { redirect_to @city }
        format.json { render :json => @city, :status => :ok }
    end
else
    respond_to do |format|
        format.html { render :new }
        format.json { render :json => { :error => "Incorrect location format, please input a city and state or country, separated by a comma." }, :status => :unprocessable_entity }
    end
end

如何確保Ajax請求命中Controller並由format.js響應程序處理?


更新:當我從$.post更改為$.ajax並明確定義其工作的數據類型時:

$.ajax({
  type: 'POST',
  url: $('div#location_select').data('cities-path'),
  data: { location_string: $('input#city_name').val() },
  dataType: 'json'
});

你是否通過routes.rb中的路由傳遞格式?

"controller/action/(.:format)"

暫無
暫無

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

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