簡體   English   中英

服務器如何響應Rails應用程序的html,ajax,xml和json

[英]How server respond for html, ajax, xml and json for rails app

在我的Rails應用程序中,我以html,ajax,xml和json發送請求。 對於xml和json,我通過編寫:format =>'json / xml'來實現,對於ajax,我們編寫了:remote => true。

但是服務器如何知道它必須使用ajax,xml或json響應? 我發送json或xml請求時注意到的一件事,它顯示在url中,如下所示

http://localhost:3000/en/line_items.json

盡管我不確定,但這是服務器知道他是否必須提供json響應的方式。 但是對於html和ajax,不要在URL中添加類似的內容。 那么服務器如何知道它是ajax還是html請求呢?

請求標頭由mime-types控制 ,它基本上確定要發送的內容/請求的類型

Rails具有內置的處理程序來管理不同的響應。 根據ActionDispatch :: Request@hawk的URL,您可以看到此中間件實際上捕獲了瀏覽器發送的請求類型


回應

您問題的真正答案是關於respond_to塊:

#apps/controller/your_controller.rb
def new
    respond_to do |format|
        format.html { # do stuff here }
        format.js { # do stuff here }
        format.json { # do stuff here }
    end
end

這將允許您根據請求中發送的mime類型發送各種響應:)

暫無
暫無

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

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