मेरे जावास्क्रिप्ट एप्लिकेशन को से पहले संसाधनों की लंबाई निर्धारित करने की आवश्यकता है इसे अजाक्स के साथ डाउनलोड करना। आमतौर पर यह कोई समस्या नहीं है, आप केवल एक HEAD अनुरोध करते हैं और Content-Length
निकालते हैं।मैं क्रॉस डोमेन अजाक्स अनुरोध से सामग्री-लंबाई शीर्षलेख तक कैसे पहुंच सकता हूं?
var xhr = $.ajax({type:"HEAD", url: "http://own-domain/file.html"})
xhr.getResponseHeader("Content-Length")
// "2195"
हालांकि, संसाधन क्लाइंट को एक अलग सर्वर पर संग्रहीत किए जाते हैं। (एक सर्वर मैं नियंत्रण)। तो मैं क्रॉस डोमेन AJAX अनुरोधों को बनाने के लिए CORS का उपयोग कर रहा हूं, और हेड अनुरोधों के लिए प्रीफलाइटिंग अनुरोधों और कस्टम हेडर के साथ POET अनुरोधों के जवाब देने के लिए सर्वर सेट अप किया है।
है कि मुख्य में महान काम कर रहा है, लेकिन मैं एक तरह से प्रमुख प्रतिक्रिया से Content-Length
निकालने जब CORS के साथ काम करने को खोजने के लिए प्रतीत नहीं कर सकते हैं:
var xhr = $.ajax({type:"HEAD", url: "http://other-domain/file.html"})
xhr.getResponseHeader("Content-Length")
// ERROR: Refused to get unsafe header "Content-Length"
मैं में विभिन्न हेडर स्थापित करने के साथ प्रयोग किया है preflighting या जवाब में, इस तरह के रूप
Access-Control-Expose-Headers: Content-Length
विनिर्देश सुझाव देने के लिए लगता है जो इसे उपलब्ध बनाने चाहिए। लेकिन कोई फर्क नहीं पड़ता कि मैं क्या करता हूं, मैं क्लाइंट को सामग्री-लंबाई शीर्षलेख उपलब्ध नहीं कर सकता। कोई सुझाव?
(क्रोम 8)
दाएं। क्या आपको लगता है कि यह वेबकिट पर एक बग के रूप में दायर किया जाना चाहिए? –
हां। पहले खोज करने का प्रयास करें, मैंने सोचा कि मैंने इससे पहले एक बग देखा था, लेकिन मुझे अब यह नहीं मिल रहा है। – monsur