[英]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.