用于xml的Rails请求我们为什么需要指定格式

时间:2013-12-27 12:27:47

标签: ruby-on-rails

对于html和ajax请求,我们不需要指定格式,但对于xml请求,我们需要指定像:format => 'xml'

这样的格式
 <%= button_to t('.add_html'), line_items_path(:product_id => product, :format => 'xml'),  :product => product.id %>

为什么我们必须指定格式?

1 个答案:

答案 0 :(得分:1)

当您通过访问链接访问页面时,浏览器实际上在标题中指定它接受HTML作为响应类型:

typical browser visit

当提交AJAX请求时,浏览器实际上会在名为X-Requested-With的请求中附加一个标头,将请求标记为XMLHttpRequest

AJAX

由于存在这些标头,服务器知道要响应的内容。要访问页面的xml格式,您必须告诉服务器您需要XML格式。如果您以编程方式构建了请求,则可以将Accept标头设置为text/xml,服务器将使用XML响应进行响应