excel - 尝试下载 Excel 文件时,Angular4 中的响应数据出现语法错误

标签 excel angular django-rest-framework angular4-httpclient

我想通过单击我的 Angular 页面中的按钮来下载 Excel 文件。 当用户单击按钮时,单击事件会触发服务方法调用:

downloadExcel(){
    this.componentService.getExel().subscribe(
        data => {
          console.log("To Download:", data);      // this part is not executed, throwing Syntax Error* shown below
          //Here, function called to download excel-file with data
        }
   );
}

服务:

getExel(){
    let url = 'http://url/endpoint/';
    return this.httpClient.get(url);
}

**语法错误:

error: SyntaxError: Unexpected token P in JSON at poisition 0 at JSON.parse

在 Django REST Framework 端:

class GetExcel(APIView):
    def get(self, request, format=None):
       with open('path/to/excel/file', 'rb') as tempfile:
           tempdata = tempfile()
           ResponseData = HttpResponse(tempdata, content_type='application/vnd...')
           ResponseData['Conetent-Disposition']="attachment; filename=%s" %Filename
       return ResponseData

所以,我无法弄清楚我在哪里犯了错误。请告诉我如何修复它。

最佳答案

...JSON.parse 的位置 0 处出现意外的 JSON 标记 P

因此,在响应对象中,HTTPClient api 尝试解析来自 httpClient.get(url) 调用的响应,存在 JSON 格式错误。问题出在 data 对象中,但它是由 HTTP 响应本身格式错误引起的。

关于excel - 尝试下载 Excel 文件时,Angular4 中的响应数据出现语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49654827/

相关文章:

.net - 是否有与 Excel 中的 NETWORKDAYS 等效的 .NET 方法?

angular - 无论使用 ActivatedRoute 的路由嵌套级别如何,都在 Angular2 路由上检索数据属性

Excel:如何从 VbScript 调用工作表模块中的函数

vba - 通过 Excel VBA 保存并关闭 powerpoint

angular - 从外部 URL 加载 Angular2 模板

django - Django Rest 框架中的表单

python - Django 休息框架 : Nested Serializer Dynamic Model Fields

python - 为什么要在 Django url 末尾使用额外的斜杠 (/)?

java - 为什么用 Java 编写 Excel 时会发生这种情况

java - Angular 8 socket.io-client 2.2.0 和 Java netty-socket.io 消息未收到?