2009-06-04 17 views
9

मैं जावास्क्रिप्ट आधारित अपलोड प्रगति मीटर लिख रहा हूं। मैं मानक मल्टीपार्ट सबमिट विधि का उपयोग करना चाहता हूं (फ़ाइल को iframe में सबमिट करने के बजाय)। सबमिट के दौरान, मैं AJAX अनुरोध भेजता हूं जो अपलोड के% पूर्ण को वापस लौटाता है और उसके बाद प्रगति मीटर को तदनुसार अपडेट करता है।सफारी फॉर्म जमा करने के बाद AJAX अनुरोधों की अनुमति नहीं देता है?

यह सब फ़ायरफ़ॉक्स & आईई में आसानी से काम करता है। हालांकि, सफारी मुख्य फॉर्म जमा होने के बाद AJAX अनुरोधों को पूरा करने से रोकता है। डीबगर में, मैं अनुरोध शीर्षलेख देख सकता हूं, लेकिन ऐसा लगता है कि प्रतिक्रिया कभी प्राप्त नहीं होती है।

किसी को इसके बारे में पता है, या इसके आसपास कैसे जाना है?

+2

कृपया कुछ कोड पोस्ट करें, शायद समस्या को हल करने का कोई तरीका है – ichiban

उत्तर

0

यह वास्तव में मेरे लिए सही व्यवहार की तरह लगता है - और मुझे हैरान है कि फ़ायरफ़ॉक्स और आईई अन्यथा व्यवहार करते हैं।

यह एक पृष्ठ छोड़ने का प्रयास करने के समान है और पृष्ठ अभी भी आपके साथ बातचीत कर रहा है - शरारती लगता है!

मैं देख सकता हूं कि यह लाभ क्यों होगा - लेकिन मुझे उम्मीद है कि अगर आप वर्तमान में पहुंच रहे हैं, या सबसे खराब डोमेन पर पोस्ट कर रहे हैं तो यह केवल तभी होगा।

2

क्या आप अपना फॉर्म जमा करने के लिए आईफ़्रेम का उपयोग कर रहे हैं? मैं अनुमान लगा रहा हूं कि फॉर्म जमा होने के बाद, पृष्ठ एक ऐसे राज्य में प्रवेश करता है जहां डीओएम में कोई और संशोधन नहीं किया जा सकता है।

अधिक जानकारी के लिए this one जैसे ट्यूटोरियल की जांच करें।

3

हां, इस प्रकार सफारी और वेबकिट (यानी Google क्रोम) पर आधारित कोई भी ब्राउज़र व्यवहार करता है। मैंने हाल ही में फ़ाइल अपलोड प्रगति मीटर पर भी इसमें भाग लिया। मैं काम करने के लिए AJAX प्राप्त करने के लिए http://drogomir.com/blog/2008/6/30/upload-progress-script-with-safari-support पर देखी गई एक ही तकनीक का उपयोग कर समाप्त हुआ। मेरे मामले में, मैं अपने आवेदन को एक ड्रोगोमिर उपयोगों में बदलने के लिए नहीं बदलना चाहता था, लेकिन तकनीक ने स्वयं काम किया। अनिवार्य रूप से, समाधान केवल सफारी में एक छिपा हुआ आईफ्रेम बनाना है जो jQuery और आपकी AJAX स्क्रिप्ट लोड करता है। फिर, शीर्ष फ्रेम उस फ्रेम में फ़ंक्शन सबमिट करने पर फ़ंक्शन को कॉल करता है। अन्य सभी ब्राउज़र अभी भी पहले जैसा ही काम करते हैं।

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