Javascript Django不';t返回数据类型为“的ajax响应”;JSON";

Javascript Django不';t返回数据类型为“的ajax响应”;JSON";,javascript,python,django,Javascript,Python,Django,我想将json发送到服务器并获取csv 我有像这样的Ajax var data = {"data":1} $.ajax({ type: "POST", url: "api/export_csv", data:JSON.stringify(data), // dataType: "JSON", // if I comment out here it works. success: function(response)

我想将json发送到服务器并获取csv

我有像这样的Ajax

var data = {"data":1}
$.ajax({
        type: "POST",
        url: "api/export_csv",
        data:JSON.stringify(data), 
  //    dataType: "JSON",   // if I comment out here it works.
        success: function(response) {
            console.log("success");
            DownloadCsv(response);
        }
});

//parse response to CSV
const DownloadCsv = (function() {
  const a = document.createElement("a");
  document.body.appendChild(a);
  a.style = "display: none";
  return function(data, fileName) {
    const blob = new Blob([data], {type: "octet/stream"}),
      url = window.URL.createObjectURL(blob);
    a.href = url;
    a.download = fileName;
    a.click();
    window.URL.revokeObjectURL(url);
  };
}());
然后在django view.py中

@api_view(['POST', 'GET'])
def export_csv_view(request):
    response = HttpResponse(content_type='text/csv')
    response['Content-Disposition'] = 'attachment; filename=somefilename.csv'
    writer = csv.writer(response)
    writer.writerow(['First row', 'A', 'B', 'C', '"Testing"', "Here's a quote"])
return response
非常奇怪的是,如果我注释掉
数据类型:“JSON”
,它可以工作,但是如果我把这行放进去,它就不能正常工作(javascript控制台)


问题解决了。 我使用contentType而不是datatype

contentType: 'application/JSON', 
//dataType: "JSON", 
我误解了这些

contentType
用于发送。
数据类型
用于接收

尝试更改行:

response=HttpResponse(content\u type='text/csv')

response=HttpResponse(content\u type='application/json')


正如evolutionxbox正确指出的那样。

问题解决了。我使用
contentType
而不是
datatype

contentType: 'application/JSON', 
//dataType: "JSON", 
I misunderstood these.
contentType
用于发送<代码>数据类型用于接收

但是我发现如果我只使用
数据类型:“JSON”
, django希望发送和接收数据都是JSON


所以这很让人困惑。

content\u type='text/csv'
不是JSON吗?可能它需要是
content\u type='application/json'
?您必须返回有效的json,而不是csv。如果您解决了您的答案,您应该做出一个答案并将其标记为正确,以便人们知道他们是否在寻找:)谢谢您的帮助和评论我自己回答。对不起,我的解释不正确。我想把json放到服务器上,然后得到csv。