Это то, что я хочу сделать: 1) браузер инициирует запрос ajax на сервер, запрашивая pdf-файл. 2) сервер загружает pdf-файл и возвращает pdf-файл для отображения. 3) браузер отображает загруженный pdf-файл в ранее существовавшем iframe.Запрос на загрузку браузера, загрузка файлов на сервер pdf, отображение в браузере pdf в iframe
Ниже приведен мой код. Он, кажется, останавливается на части iframe, но я подозреваю, что он не отправляет PDF правильно.
Browser файл 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')
EDIT:
Я один вопрос остальные: Я не хочу использовать ниже код в моем файле index.html в любом случае, потому что я хочу загрузить pdf-файл и использовать его снова. Причиной этого является то, что моя страница index.html использует javascript для отображения и скрытия iframe, и с помощью приведенного ниже кода файл pdf загружается при каждом показе iframe.
var uri = '/viewer/loaddrawing/';
document.getElementById('iframetitle').src = uri + '?key=' + value;
РЕШИТЬ: выше проблема была решена после того, как стороны от Аугусто, и следующий код 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;
Кажется, что это смешано с litte: Я правильно понимаю: вы хотите сделать запрос на сервер, передав некоторую ценность. С помощью этого значения создается уникальный URL-адрес. При запросе этого URL-адреса можно извлечь pdf-файл. У вас должно быть два обработчика на сервере, не так ли? – thertweck
вы правильно понимаете - pdf является внешним для сервера, поэтому мне нужно получить его на стороне сервера. В противном случае я не понимаю, что вы подразумеваете под двумя обработчиками. Во всяком случае см. Отредактированный вопрос выше. – user2104778