对于html和ajax请求,我们不需要指定格式,但对于xml请求,我们需要指定像:format => 'xml'
<%= button_to t('.add_html'), line_items_path(:product_id => product, :format => 'xml'), :product => product.id %>
为什么我们必须指定格式?
答案 0 :(得分:1)
当您通过访问链接访问页面时,浏览器实际上在标题中指定它接受HTML作为响应类型:
当提交AJAX请求时,浏览器实际上会在名为X-Requested-With
的请求中附加一个标头,将请求标记为XMLHttpRequest
:
由于存在这些标头,服务器知道要响应的内容。要访问页面的xml
格式,您必须告诉服务器您需要XML格式。如果您以编程方式构建了请求,则可以将Accept
标头设置为text/xml
,服务器将使用XML响应进行响应