Как заставить CouchDB возвращать вложения в base64 вместо MIME multipart / related? - PullRequest
2 голосов
/ 15 января 2012

Как описано в http://wiki.apache.org/couchdb/HTTP_Document_API#Getting_Attachments_With_a_Document, я могу попросить вернуть вложения вместе с вложениями документов через ?attachments=true.

Проблема

Какв вики-состояниях CouchDB вложения могут быть возвращены в виде простого JSON или MIME multipart / related.

Чтобы получить MIME multipart / related формат ответа, просто добавьте заголовок «Accept:» к запросу со значением"multipart / related".

Для меня они всегда возвращаются в режиме MIME multipart / related, даже если заголовок Accept: не указан.Может быть, веб-браузер добавляет его, но я не могу удалить его - и мне нужно обычный JSON (чтобы обработать их с помощью JavaScript)

Вопрос

Что я должен сделать, чтобы вложения были встроены, или это ошибка CouchDB?

1 Ответ

3 голосов
/ 15 января 2012

По умолчанию веб-браузер устанавливает

Accept: */*

Итак, правильный способ - сбросить заголовок Accept заранее:

$.ajax({
beforeSend: function(req) {
    req.setRequestHeader("Accept", "");
    req.setRequestHeader("Accept", "application/json");
},
type: "GET",
url: "/db/doc/?attachments=true&rnd=_"+(new Date().getTime()),
contentType: "application/json; charset=utf-8",
success: function(data) {
    $("#test").html(JSON.stringify(data));
},
error:function(xx,s,x){alert("e"+x.message+" "+x+" "+s);},
});
...