2013-04-29 6 views
6

के साथ एडब्ल्यूएस एस 3 सफलता_action_redirect नीति का उपयोग करें मैं सीधे amazon S3 पर फ़ाइल अपलोड करने के लिए signed POST का उपयोग कर रहा हूं। मुझे PHP का उपयोग करके पॉलिसी के हस्ताक्षर के साथ कुछ परेशानी थी लेकिन अंततः इसे ठीक किया गया और यहां sample of code है।एक्सएचआर

यह xhr अनुरोध जावास्क्रिप्ट में भेज दिया गया है और मैं अमेज़ॅन से एक उत्तर की प्रतीक्षा कर रहा हूं। सबसे पहले मैं XML प्रतिक्रिया प्राप्त करने के लिए success_action_status का उपयोग 201 पर कर रहा था।

मैं डेटाबेस में रिकॉर्ड बनाने के लिए अपने सर्वर पर एक स्क्रिप्ट को कॉल करने के लिए success_action_redirect का उपयोग करना चाहता हूं।

कारण यह है कि मैं डेटाबेस में रिकॉर्ड बना सकता हूं और यदि इस चरण में कुछ भी गलत होता है तो मैं इस बिंदु पर सीधे एक त्रुटि संदेश वापस कर सकता हूं। इसके अलावा यह मुझे मेरे सर्वर पर एक और AJAX अनुरोध बचाता है।

इसलिए मैंने success_action_redirect को http:\\localhost\callback.php पर निर्दिष्ट करने की कोशिश की है जहां मेरे पास एक स्क्रिप्ट है जो कुछ पैरामीटर की प्रतीक्षा कर रही है।

लेकिन ऐसा लगता है कि इस स्क्रिप्ट को कभी नहीं कहा जाता है और xhr.send() की प्रतिक्रिया खाली है।

मुझे लगता है कि यह एक क्रॉस-ब्राउज़र समस्या है और मुझे आश्चर्य है कि क्या किसी भी तरह से jsonp का उपयोग करना संभव होगा? कोई विचार?

अद्यतन

जाहिर XHR देशी रूप अनुप्रेषित तो यह काम करना चाहिए पीछा कर रहा है लेकिन जब मैं success_action_redirect निर्दिष्ट यह रिटर्न error Server responded with 0 code.

पहले तो मैंने सोचा कि यह था, क्योंकि रीडायरेक्ट URL अपने स्थानीय सर्वर पर था, इसलिए मैंने इसे एक सुलभ सर्वर में बदल दिया है लेकिन कोई मौका नहीं है।

कोई भी जानता है कि यह इस त्रुटि संदेश को क्यों लौट रहा है?

+0

मैंने अभी छोड़ दिया क्योंकि मुझे लगता है कि यह संभव नहीं है। XHR.send() खाली प्रतिक्रिया लौटाता है जो दर्शाता है कि अमेज़ॅन का मानना ​​है कि मेरा रीडायरेक्ट यूआरएल वैध यूआरएल नहीं है। मुझे नहीं पता कि मुझे इसके बारे में कोई दस्तावेज क्यों नहीं मिला :( – maxwell2022

+0

एक ही समस्या होने पर, कोई भाग्य? –

+0

नहीं, मैं अपने जावास्क्रिप्ट कोड में क्लाइंट पक्ष पर कॉलबैक को संभालता हूं। – maxwell2022

उत्तर

0

मैं भी इस समस्या में भागता हूं। ऐसा लगता है कि इस like this का कोई समाधान नहीं है, शायद मुझे मिला है कि सबसे अच्छा कामकाज this जैसा कुछ है। ऐसा लगता है कि केवल एकमात्र वर्कअराउंड में कॉलबैक को मैन्युअल रूप से निष्पादित करने के लिए दूसरा xhr-अनुरोध शामिल है। इसलिए

success_action_status

इस्तेमाल किया जाना चाहिए। यदि अपलोड सफल हुआ तो आप उसे 201 प्रतिक्रिया प्राप्त करेंगे और आप वास्तविक कॉलबैक के लिए दूसरा अनुरोध शुरू कर सकते हैं। मेरे लिए यह इस समय एकमात्र संभावित समाधान की तरह दिखता है।

कोई अन्य समाधान?

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