使用Dart使用AJAX下载文件
是否可以根据ajax请求下载文件? 同一个域/跨域是否重要 我知道这可以在将浏览器重定向到URL并设置相关标题后完成,但我想知道在执行ajax请求时是否可以完成 我将JSON作为请求负载发布到URL,并基于JSON的内容,我想发回一个特定的文件使用Dart使用AJAX下载文件,ajax,dart,download,dart-html,Ajax,Dart,Download,Dart Html,是否可以根据ajax请求下载文件? 同一个域/跨域是否重要 我知道这可以在将浏览器重定向到URL并设置相关标题后完成,但我想知道在执行ajax请求时是否可以完成 我将JSON作为请求负载发布到URL,并基于JSON的内容,我想发回一个特定的文件 client.post(url, body: request, headers:{"Content-Type":"application/json"}).then((res) { if (res.statusCode == 200) {
client.post(url, body: request, headers:{"Content-Type":"application/json"}).then((res) {
if (res.statusCode == 200) {
if ("application/json" == res.headers["content-type"]) {
// parse JSON here
} else {
// download the content if Content-Disposition is set
}
}
}).whenComplete(() {
client.close();
}).catchError((exception, stacktrace) {
print(exception);
print(stacktrace);
showErrorMessage("An Error Occurred");
});
我可以看到下载PDF时返回了正确的标题,但是如果我通过AJAX响应接收到这些标题,它不会起任何作用
更新-澄清:
如果单击此链接,它将向Github发出GET请求并下载文件:
我正试图通过Dart的BrowserClient.POST使用POST请求下载文件。你说的“下载文件”是什么意思?类似于?如果您单击指向服务器上文件的链接,它将根据您的内容配置设置下载/打开该文件。如果我对该文件执行window.location,它也会下载。两者都是对服务器的GET请求。现在,我试图弄清楚是否可以使用AJAX POST-POST JSON将文件下载到URL,并在浏览器中下载服务器端生成的文件。应该与上面链接中解释的尝试一起工作,或者用一个示例更新问题,以澄清它。这些解决方案中的所有解决方案似乎都可以链接使用某种GET请求,无论是通过XHR-GET、window.location到某个URL、使用iFrames等。HTML5的Blob功能在最新的IE中不受支持,因此我唯一的选择似乎是执行window.location并将JSON中的参数作为GET参数传递。不是很优雅,但现在必须这样。你说的“下载文件”是什么意思?类似于?如果您单击指向服务器上文件的链接,它将根据您的内容配置设置下载/打开该文件。如果我对该文件执行window.location,它也会下载。两者都是对服务器的GET请求。现在,我试图弄清楚是否可以使用AJAX POST-POST JSON将文件下载到URL,并在浏览器中下载服务器端生成的文件。应该与上面链接中解释的尝试一起工作,或者用一个示例更新问题,以澄清它。这些解决方案中的所有解决方案似乎都可以链接使用某种GET请求,无论是通过XHR-GET、window.location到某个URL、使用iFrames等。HTML5的Blob功能在最新的IE中不受支持,因此我唯一的选择似乎是执行window.location并将JSON中的参数作为GET参数传递。不是很优雅,但现在还得这样。