Ruby on rails 服务器如何响应rails应用程序的html、ajax、xml和json

Ruby on rails 服务器如何响应rails应用程序的html、ajax、xml和json,ruby-on-rails,Ruby On Rails,在我的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和aj

在我的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请求呢?

请求头受其控制,它基本上决定了发送哪种类型的内容/请求

Rails有一个内置的处理程序来管理不同的响应。根据上的@hawk的URL,您可以看到该中间件实质上捕获了从浏览器发送的请求类型


回应

你的问题的真正答案是关于街区的:


这将允许您根据请求中发送的mime类型发送各种响应:)

答案在请求标题中我检查了请求标题,在google chrome中每个请求都是相同的这里给出了请求头,请阅读这里还有一个方法
xml\u http\u request?
jQuery有
contentType
选项
#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