以下是我从Google Chrome浏览器中提取的3个http标头请求格式。这3个请求格式适用于html,xml和json。服务器如何知道哪个是html,xml或json并做出相应的响应?
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Connection:keep-alive
Cookie:_depot_session=BAh7CUkiD3Nlc3Npb25faWQGOgZFRiIlZjhlMzg2MjM3YWJlYzg2NzgyZTk0MmM2MzQzOTI1YWVJIgxjYXJ0X2lkBjsARmksSSIQX2NzcmZfdG9rZW4GOwBGSSIxMk9PaHhzVVpqNkJ2VnYxQnZwL3E5UWlZbFFjKzF3Mm9CUEhtT2c2TWd0VT0GOwBGSSIMdXNlcl9pZAY7AEZpDA%3D%3D--e672d35300801a62050521d5d2ed381f263126a7
Host:localhost:3000
Referer:http://localhost:3000/en/products
User-Agent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Cache-Control:max-age=0
Connection:keep-alive
Content-Length:69
Content-Type:application/x-www-form-urlencoded
Cookie:_depot_session=BAh7CUkiD3Nlc3Npb25faWQGOgZFRiIlZjhlMzg2MjM3YWJlYzg2NzgyZTk0MmM2MzQzOTI1YWVJIgxjYXJ0X2lkBjsARmksSSIQX2NzcmZfdG9rZW4GOwBGSSIxMk9PaHhzVVpqNkJ2VnYxQnZwL3E5UWlZbFFjKzF3Mm9CUEhtT2c2TWd0VT0GOwBGSSIMdXNlcl9pZAY7AEZpDA%3D%3D--e672d35300801a62050521d5d2ed381f263126a7
Host:localhost:3000
Origin:http://localhost:3000
Referer:http://localhost:3000/
User-Agent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Cache-Control:max-age=0
Connection:keep-alive
Content-Length:69
Content-Type:application/x-www-form-urlencoded
Cookie:_depot_session=BAh7CUkiD3Nlc3Npb25faWQGOgZFRiIlZjhlMzg2MjM3YWJlYzg2NzgyZTk0MmM2MzQzOTI1YWVJIgxjYXJ0X2lkBjsARmksSSIQX2NzcmZfdG9rZW4GOwBGSSIxMk9PaHhzVVpqNkJ2VnYxQnZwL3E5UWlZbFFjKzF3Mm9CUEhtT2c2TWd0VT0GOwBGSSIMdXNlcl9pZAY7AEZpDA%3D%3D--e672d35300801a62050521d5d2ed381f263126a7
Host:localhost:3000
Origin:http://localhost:3000
Referer:http://localhost:3000/
User-Agent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36
答案 0 :(得分:1)
您有一个名为respond_to的方法来处理请求
def index
@people = Person.find(:all)
respond_to do |format|
format.html
format.xml { render :xml => @people.to_xml }
format.json {render :json => @people.to_json}
end
end
控制器中的上述方法将根据请求格式进行响应