如何强制CouchDB返回base64中的附件而不是MIME multipart / related?

时间:2012-01-14 21:23:28

标签: ajax couchdb attachment

http://wiki.apache.org/couchdb/HTTP_Document_API#Getting_Attachments_With_a_Document所述,我可以要求通过?attachments=true将附件与文件附件一起退回。

问题

正如CouchDB wiki所述,附件可以以普通JSON或MIME多部分/相关方式返回。

  

要获取MIME多部分/相关响应格式,只需在其中添加“Accept:”标头即可   请求值“multipart / related”。

对我来说,即使没有指定Accept:标头,它们也总是以MIME多部分/相关模式返回。也许网页浏览器添加它,但我也无法删除它 - 我需要普通JSON (用javascript处理它们)

问题

我应该怎样做以内联附件, - 或者 - 这是一个CouchDB错误吗?

1 个答案:

答案 0 :(得分:3)

默认情况下,webbrowser设置

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);},
});