Ajax请求返回200 OK,但是会触发错误事件,而不是成功。 xlswriter

时间:2020-02-21 11:21:36

标签: javascript python django ajax xlsxwriter

我在用户界面中有一个“下载excel”按钮,单击该按钮后应下载excel。以下是相同的代码段。

令我惊讶的是,Ajax请求返回200 OK,但是会引发错误事件而不是成功。无法追溯根本原因。

views.py

def excel(request):
ans = request.POST.getlist('ans[]')
ans_final=[]
rows = request.POST.get('rows')
for each_ele in ans:
    each_ele = each_ele.split('.')
    each_ele[0] = each_ele[0][:-2]
    each_ele[1] = each_ele[1][:-2]
    fin = each_ele[0]+' - '+each_ele[1]
    ans_final.append(fin)
output = BytesIO()
workbook = xlsxwriter.Workbook(output)
# workbook = xlsxwriter.Workbook('/home/sai_avinash/Desktop/hello.xlsx')
worksheet = workbook.add_worksheet('Test_Data')
bold = workbook.add_format({'bold': True})
for i in range(len(ans_final)):
    worksheet.write(0, i,ans_final[i],bold)

row_index=1
row_count = int(rows)
while(row_count):
    col_index=0
    for each_ele in ans:
        worksheet.write(row_index, col_index, eval(each_ele))
        col_index += 1
    row_index += 1
    row_count -= 1


workbook.close()
output.seek(0)

# return JsonResponse({'ok':'ok'})
response = HttpResponse(
    output,
    content_type='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
)
response['Content-Disposition'] = 'attachment; filename=django_simple.xlsx'

return response

js文件

$('body').on('click', '.excel', function () {


var ok = ans
    rows = $('#hmm').val()
$.ajax({
    type: "POST",
    url: "/excel",
    data: {'ans':ok, 'rows':rows},
    dataType: "json",
    success: function (data) {
        // alert("Success")
    },
    error: function (e) {
        debugger
        // console.log(e)
        alert("Error")
    }
});

});

0 个答案:

没有答案