是否可以根据ajax请求下载文件? 如果它是相同的域/跨域是否重要?
我知道可以在将浏览器重定向到URL并设置相关标头时完成,但是想知道在执行ajax请求时是否可以完成。
我将JSON作为请求有效负载发布到URL,并根据JSON的内容,我想发回一个特定的文件。
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请求并下载文件:https://github.com/dartsim/dart/archive/master.zip 我试图通过Dart的BrowserClient.post使用POST请求下载文件。