如何在django-rest framewrok中返回二进制数组?

时间:2015-10-22 09:49:17

标签: javascript python ajax django django-rest-framework

我正在研究服务器 - 客户端Web服务。

我希望服务器从url下载文件并返回文件内容的原始字节。

然而,似乎来自ajax的接收字节被清除。

这是服务器端:

from rest_framework.response import Response
import urllib2
class MyView(APIView):
    def post(self, request):
        url = request.DATA['url']
        conn = urllib2.urlopen(url)
        byte = conn.read()
        conn.close()
        return Response({'blob':byte})

这是客户端,

$.ajax({
    url: 'myurl',
    type: 'POST',
    contentType: "application/json; charset=utf-8",
    data: JSON.stringify({
        "url": url,
    }),                        
    success: function(response, textStatus, jqXhr) {
    if (response) {
        try {
            var blob=response.blob;
            // process blob, but it is corrupted
         } catch (e) {
            displayError(e);
     }

     },
     error: function(jqXHR, textStatus, errorThrown) {
         var err = parseError(jqXHR, textStatus, errorThrown);
         displayError(err);
     }
});

使用django-rest框架执行此操作的正确方法是什么?

谢谢!

0 个答案:

没有答案