转换CSV文件时出现InvalidStateError



我有以下JS函数,在我的HTML按钮的'onclick'中运行:

function exportarDadosRelatorio2() {
if ($("#Relatorio").val() != "") {
var listaParametrosTela = construirParametrosTela();
var busca = $('#formRelatorio').serializeObject();
busca.ListaParametrosTela = listaParametrosTela;
var envio = JSON.stringify({ pModel: busca });
$.ajax({
type: "POST",
url: "/Relatorios/ExportarDadosRelatorio2",
contentType: "application/json; charset=utf-8",
data: envio,
dataType: "json",
complete: function (response) {
//var blob = new Blob([response], { type: 'application/ms-excel' });
var blob = new Blob([response], { type: 'text/csv' });
var downloadUrl = URL.createObjectURL(blob);
var a = document.createElement("a");
a.href = downloadUrl;
a.download = "relatorio.csv";
document.body.appendChild(a);
a.click();
}
});
}
else {
mostrarMensagemEmBalao("", "Selecionar um relatório para ser gerado.");
}
}

但是当我试图读取响应并创建一个新的Blob时:var blob = new blob ([response], {type: 'text/csv'});我得到一个错误:

Unhandled exception at line 98, column 17 in http://localhost:30680/Scripts/Modulos/Relatorios/Index.js
0x800a139e - Erro em tempo de execução do JavaScript: InvalidStateError

我尝试使用以下类型,但也不工作:

type: 'application/ms-excel'

这是"响应"。responseText' content(只是初始行):

EXECUTIVO DE CONTA;RAZÃO SOCIAL;NOME FANTASIA;CNPJ
PAULO FENDLER JUNIOR;ACCOR BRASIL;ACCOR;09967852000127
PAULO FENDLER JUNIOR;AERONAUTICA;;
PAULO FENDLER JUNIOR;AERONAUTICA;;
PAULO FENDLER JUNIOR;AERONAUTICA;;
PAULO FENDLER JUNIOR;AERONÁUTICA;;
PAULO FENDLER JUNIOR;ASSEMBLEIA LEGISLATIVA DO ESTADO DE SAO PAULO;ASSEMBLEIA LEGISLATIVA;59952259000185

请问,有什么建议吗?这是图像错误:对误差

原因是你没有用JSON格式解析。对于blob,您必须首先使用JSON.stringify将数据解析为JSON希望它能起作用,让我知道

var resjson= JSON.stringify(response);
var blob = new Blob([resjson], { type: 'text/csv' });

相关内容

  • 没有找到相关文章