2013-09-25 16 views
6

मैं एक HTML फ़ाइल तक पहुंचने का प्रयास कर रहा हूं जो S3 में AJAX अनुरोध से रहता है और मुझे 403 त्रुटि मिली है।AWS S3 CORS 403 विकल्प अनुरोध के साथ त्रुटि

मैंने एडब्ल्यूएस ऑनलाइन पढ़ा कि अगर मैं ऐसा करता हूं, तो मुझे 403 त्रुटि को ठीक करने के लिए एडब्ल्यूएस कोर नियम स्थापित करने की आवश्यकता है।

हालांकि, मैं दो दिन कोशिश कर रहा हूं और मेरे पास कोई भाग्य नहीं है। यहाँ मेरी CORS विन्यास है:

<?xml version="1.0" encoding="UTF-8"?> 
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> 
<CORSRule> 
    <AllowedOrigin>*</AllowedOrigin> 
    <AllowedMethod>GET</AllowedMethod> 
    <MaxAgeSeconds>3000</MaxAgeSeconds> 
    <ExposeHeader>XMLHttpRequest</ExposeHeader> 
    <AllowedHeader>x-csrftoken</AllowedHeader> 
</CORSRule> 
</CORSConfiguration> 

और मेरे HTTP अनुरोध की तरह दिखता है:

Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
Accept-Encoding gzip, deflate 
Accept-Language en-US,en;q=0.5 
Access-Control-Request-He... x-csrftoken 
Access-Control-Request-Me... GET 
Connection keep-alive 
Host xxxxxxxxx.cloudfront.net 
Origin http://localhost:8000 
User-Agent Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:18.0) Gecko/20100101 Firefox/18.0 

किसी को भी मेरी मदद कर सकते देखने के लिए मैं क्या याद है?

धन्यवाद!

+0

समस्या को हल करता है S3 लेकिन क्लाउडफ़्रंट नहीं है। क्या किसी ने सीओएसएस कॉन्फ़िगरेशन को S3 से क्लाउडफ़्रंट पर अग्रेषित करने का प्रयास किया था? –

उत्तर

0

HTTP 403 (Frobidden) का मतलब यह नहीं है कि आपको सीओआरएस की आवश्यकता है। एक विकल्प में क्लाउडफ़्रंट (समान उत्पत्ति) और आपके वितरण में कई अनुरोध और व्यवहार शामिल हैं। उदाहरण के लिए:

Beavior -> Origin 

/api/* -> my.api.com 
/static/* -> my.s3.bucket 

लेकिन अगर आप वास्तव में पार मूल अनुरोध, CORS हेडर CloudFront द्वारा अग्रेषित किया जाना चाहिए की जरूरत है और एक ही व्यवहार किया है, अपने उदाहरण में आप शायद हेडर आप की अनुमति देने के साथ और अधिक अनुमोदक होना चाहता हूँ (<AllowedHeader>*</AllowedHeader> ?)। लेकिन यह क्लाउडफ्रंट या एस 3 की तुलना में ब्राउज़र व्यवहार से अधिक संबंधित होगा।

संबंधित मुद्दे