सार:कैश्ड गैर CORS प्रतिक्रिया संघर्ष का अनुरोध
मैं एक पेज S3 (एचटीएमएल img
टैग) से एक छवि का टैग लोड हो रहा है का उपयोग करता है और मैं एक पेज xmlhttprequest
का उपयोग करता है। टैग लोडिंग को सीओआरएस हेडर के बिना कैश किया जाता है और इसलिए xmlhttprequest
कैश किए गए संस्करण को देखता है, यह हेडर की जांच करता है और क्रॉस मूल त्रुटि के साथ विफल रहता है।
विवरण:
संपादित: दोनों सफारी 5.1.6 और क्रोम 21.0.1180.89 में विफल। फ़ायरफ़ॉक्स 14 में
S3 के नए CORS का उपयोग करना, मैं सेटअप एक CORSRule
के रूप में तो ठीक काम करता है:
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>HEAD</AllowedMethod>
<MaxAgeSeconds>0</MaxAgeSeconds>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
मैं अनुरोध शीर्षों में मूल की स्थापना के बिना S3 से एक छवि का अनुरोध करते हैं मैं वापस छवि के बिना प्राप्त प्रतिक्रिया में किसी भी कोर हेडर।
यह कैश किया गया है और बाद में सीओआरएस अनुरोध (एक है जो अनुरोध शीर्षलेख में मूल सेट करता है) अस्वीकार कर दिया जाता है क्योंकि ब्राउजर गैर कैरस संस्करण कैश के रूप में उपयोग करता है।
इसे हल करने का सबसे अच्छा तरीका क्या है? क्या मैं कुछ सेट कर सकता हूं ताकि गैर कोर संस्करण कभी कैश न हो जाए? क्या मुझे अनुरोध के यूआरएल में ?some_flag
जोड़कर सीओआरएस अनुरोधों को अलग करना चाहिए?
आदर्श रूप से मेरे पास S3 हमेशा आवश्यक कोरस हेडर भेज देगा, भले ही अनुरोध में "मूल" न हो।
आप किस ब्राउज़र का उपयोग कर रहे हैं? क्या यह व्यवहार सभी ब्राउज़रों में होता है? यह एक ब्राउज़र बग की तरह लगता है। आपके द्वारा प्रस्तावित क्वेरी पैरामीटर समाधान एक अच्छा कामकाज की तरह लगता है। – monsur
जोड़ा गया "संपादित करें: सफारी 5.1.6 और क्रोम 21.0.1180.89 दोनों में विफलता। फ़ायरफ़ॉक्स में ठीक काम करता है 14." – Wes
शायद एक वेबकिट बग तो। यह एक ही मुद्दे की तरह लगता है: https://bugs.webkit.org/show_bug.cgi?id=63090 बग सुझाव देता है कि शीर्षलेख "वेरी: उत्पत्ति" जोड़ना समस्या को हल कर सकता है। – monsur