2013-03-05 143 views
1

我試圖通過AJAX在簡單的按鈕上單擊發出POST請求。Rails:Dojo POST請求正在作爲GET請求接收

在DOM,我有一個按鈕:

<button id="MyButton">Click Me!</button> 

我的JavaScript問題的一個片段的POST請求:

require(["dojo/on", "dojo/dom", "dojo/request"], 
    function(on, dom, request) { 
     on(dom.byId("MyButton"), "click", function(event) { 
      request.post("/post_here").then(
       function(response) { alert(response); }, 
       function(error) { alert(error); } 
      ); 
     }); 
    } 

而且我也有以下途徑和控制器動作:

post 'post_here' => "controller#action" 

而控制器動作

def action 
    Rails.logger.debug "Hello!" 
    render nothing: true 
end 

當我點擊該按鈕發出請求後,我得到一個錯誤信息:

No route matches [GET] "/post_here" 

誰能幫幫忙?

+0

這個問題似乎是使用JavaScript。我仍然可以使用表單向該網址提交發布請求。我想知道HTTP頭是否與此有關。 – 2013-03-05 06:25:00

+0

我看到有一個名爲「request_method = GET」的cookie在我往返於服務器的所有流量中。這是問題嗎?如果是這樣,我似乎無法弄清楚如何從我的cookies中刪除request_method = GET。 – 2013-03-05 23:30:01

回答

0

這個工作對我來說:

require(["dojo/on", "dojo/dom", "dojo/request"], 
function(on, dom, request) { 
    on(dom.byId("MyButton"), "click", function(event) { 
     request("/post_here", {'method': 'POST' }).then(
      function(response) { alert(response); }, 
      function(error) { alert(error); } 
     ); 
    }); 
}