这就是我想要做的:1)浏览器向服务器发起一个ajax请求,要求一个pdf。2)服务器下载pdf,并返回pdf显示。3) 浏览器在预先存在的 iframe 中显示下载的 pdf。
下面是我的代码。它似乎停在 iframe 部分,但我怀疑它没有正确发送 pdf。
浏览器 index.html 文件:
var uri = '/viewer/loaddrawing/';
$.getJSON(uri, {key:value}, function(data, jqXHR){
document.getElementById("iframetitle").src = uri;
});
Django 服务器views.py 文件:
import requests
def loaddrawing(request):
value = request.GET.get('key')
#the key is used to generate a unique url, but for test purposes lets use the url shown below
url = "http://cbmeturkey.com/media/109/test.pdf"
response = urllib2.urlopen(url)
some_data = response.read()
return HttpResponse(some_data, mimetype='application/pdf')
编辑:
我还有一个问题:我不想在我的 index.html 文件中使用下面的代码,因为我想实际下载 pdf 并再次使用它。原因是我的 index.html 页面使用 javascript 来显示和隐藏 iframe,并且使用下面的代码,每次显示 iframe 时都会重新下载 pdf。
var uri = '/viewer/loaddrawing/';
document.getElementById('iframetitle').src = uri + '?key=' + value;
已解决:上述问题在 Augusto 的指示和以下 index.html 代码(仅加载一次 pdf)后得到解决,但请注意,现在我正在修改 div(名为“divtitle”)而不是 iframe:
var uri = '/viewer/loaddrawing/' + '?key=' + value;
var htm = '\<iframe src="' + uri +'" onload="downloadComplete()">\</iframe>';
document.getElementById('divtitle').innerHTML = htm;