आप जावास्क्रिप्ट में अनुरोध कर सकते हैं, किसी भी हेडर को सेट करना चाहते हैं। तो आप कर सकते हैं URL.createObjectURL(), srciframe के लिए कुछ उपयुक्त पाने के लिए ।
var xhr = new XMLHttpRequest();
xhr.open('GET', 'page.html');
xhr.onreadystatechange = handler;
xhr.responseType = 'blob';
xhr.setRequestHeader('Authorization', 'Bearer ' + token);
xhr.send();
function handler() {
if (this.readyState === this.DONE) {
if (this.status === 200) {
var data_url = URL.createObjectURL(this.response);
document.querySelector('#output-frame-id').src = data_url;
} else {
console.error('no pdf :(');
}
}
}
प्रतिक्रिया का MIME प्रकार संरक्षित है। इसलिए यदि आपको HTML प्रतिक्रिया मिलती है, तो html iframe में दिखाई देगा। यदि आपने एक पीडीएफ का अनुरोध किया है, तो ब्राउज़र पीडीएफ दर्शक iframe के लिए किक करेगा।
यदि यह लंबे समय तक रहने वाले क्लाइंट-साइड ऐप का हिस्सा है, तो आप URL.revokeObjectURL()मेमोरी लीक से बचने के लिए उपयोग करना चाह सकते हैं ।
ऑब्जेक्ट URL भी बहुत दिलचस्प हैं। वे फॉर्म के हैं blob:https://your.domain/1e8def13-3817-4eab-ad8a-160923995170। आप वास्तव में उन्हें एक नए टैब में खोल सकते हैं और प्रतिक्रिया देख सकते हैं, और जब उन्हें बनाया गया संदर्भ बंद कर दिया जाता है तो वे खारिज कर दिए जाते हैं।
यहाँ एक पूर्ण उदाहरण है: https://github.com/courajs/pdf-poc