我想通过单击角度页面中的按钮来下载excel文件。
当用户单击button
时,click事件会触发服务方法调用:
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);
}
**语法错误:
错误:SyntaxError:位于poisition 0的JSON中的意外标记P. JSON.parse
在Django REST框架方面:
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
所以,我无法弄清楚我犯了哪些错误。请告诉我们如何解决它。
答案 0 :(得分:1)
...Unexpected token P in JSON at poisition 0 at JSON.parse
因此,在响应对象中,HTTPClient api尝试解析来自httpClient.get(url)
调用的响应,因此存在JSON格式错误。问题出在data
对象中,但它是由HTTP响应本身格式错误引起的。
答案 1 :(得分:1)
您可以在这篇文章中查看:how-to-properly-download-excel-file-with-angular2。这或多或少与您的要求相似。