2011-03-08 51 views
0

我不知道如何編寫我的控制器來接受來自另一個域的帖子,並在成功時返回一個文本字符串「OK」?如何在rails 3應用程序中通過AJAX接受跨域POST?

有人可以展示一個使用Rails 3控制器和另一個域上會存在的jQuery的例子嗎?

謝謝!

$.ajax({ 
    url: "http://localhost:3000/lists", 
    dataType: "jsonp", 
    type: "POST", 
    processData: false, 
    contentType: "application/json", 
    data: myData 
}); 
+0

嗨,我在這裏打擊相同的概率(但與ajax)...你真的設法使用類型的數據類型jsonp:POST?什麼是你使用的jQuery版本? – MrWater 2012-08-09 21:01:57

回答

0

在你Lists控制器,有這樣的事情:

def index 
    # do your stuff 

    respond_to do |format| 
     format.js { render :json => "OK".json } 
    end 
end 

你實際上並不需要 「OK」 從Rails的控制器返回。 jQuery會自動檢測請求是否成功,並且您可以通過將success: some_function(data)添加到AJAX請求來執行任何操作。

此外,您可以查看有關以JSON here返回數據的更多信息。

0

我不確定Rails控制器部分是否具體,但它應該沒關係。您的數據是否需要您進行POST,或者您是否可以使用GET請求?我認爲後者更容易解決跨域問題。我已經通過POSTs跨瀏覽器取得了成功,但Firefox通常不會放棄它。