From 3d5351adb31fea59400179f85fb2dd97b7028ddb Mon Sep 17 00:00:00 2001 From: John Christopher Anderson Date: Mon, 9 Feb 2009 00:57:26 +0000 Subject: allow format query param to override accept headers for _list and _show git-svn-id: https://svn.apache.org/repos/asf/couchdb/trunk@742217 13f79535-47bb-0310-9956-ffa450edef68 --- share/server/main.js | 4 +++- src/couchdb/couch_httpd_view.erl | 3 +++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/share/server/main.js b/share/server/main.js index 2bbf1638..13e85ed8 100644 --- a/share/server/main.js +++ b/share/server/main.js @@ -142,7 +142,7 @@ var Mimeparse = (function() { // this function provides a shortcut for managing responses by Accept header respondWith = function(req, responders) { var bestKey = null, accept = req.headers["Accept"]; - if (accept) { + if (accept && !req.query.format) { var provides = []; for (key in responders) { if (mimesByKey[key]) { @@ -151,6 +151,8 @@ respondWith = function(req, responders) { } var bestMime = Mimeparse.bestMatch(provides, accept); bestKey = keysByMime[bestMime]; + } else { + bestKey = req.query.format; } var rFunc = responders[bestKey || responders.fallback || "html"]; if (rFunc) { diff --git a/src/couchdb/couch_httpd_view.erl b/src/couchdb/couch_httpd_view.erl index fc3302d7..7666da98 100644 --- a/src/couchdb/couch_httpd_view.erl +++ b/src/couchdb/couch_httpd_view.erl @@ -328,6 +328,9 @@ parse_view_query(Req, Keys, IsReduce) -> Msg1 = "Bad URL query value for 'include_docs' expected \"true\" or \"false\".", throw({query_parse_error, Msg1}) end; + {"format", _} -> + % we just ignore format, so that JS can have it + Args; _ -> % unknown key Msg = lists:flatten(io_lib:format( "Bad URL query key:~s", [Key])), -- cgit v1.2.3