我正在尝试将.JSON下载到客户端计算机以进行备份。现在,我这样做的方式是通过JQuery POST请求调用cgi脚本。我按照指南at the bottom of this page关于提出“文件下载...”框,以及来自this question's接受回答的信息。
此刻,脚本运行,并正确返回JSON,但浏览器不会自动下载它,也不会像我预期的那样引发“文件下载”框。
以下是脚本中的标题和打印语句:
print "Content-Type: application/octet-stream; name='testfile.json'"
print "Content-Disposition: attachment; filename='testfile.json'\n"
print json.dumps(configJSON)
我不确定我是否错误地格式化了上述内容,或者是否必须向我的请求添加内容以便下载响应。我的要求目前如下:
$.ajax({
type: 'POST',
url: 'cgi-bin/sendConfig.py',
})
正如我上面所说,我可能会看到可能需要在请求中添加.done()
函数,但是上面链接的文章的编写方式,似乎应该是Content-Type和Content-Disposition设置自动开始下载
答案 0 :(得分:1)
Javascript by design无法访问文件系统,因此无法通过ajax启动文件下载。
如果您直接使用浏览器访问该网址(cgi-bin / sendConfig.py),您将收到下载提示。
如果您需要通过javascript启动此下载,可以尝试一些选项。 您可以重定向到该页面:
window.location.href = "http://yoursite.com/cgi-bin/sendConfig.py";
或向网页添加隐藏的iframe:
$('body').append('<iframe src="http://yoursite.com/cgi-bin/sendConfig.py" style="display:none;"></iframe>');