2011-11-22 20 views
6

में क्रॉस-उत्पत्ति के साथ http पोस्ट अनुरोध मुझे फ़ायरफ़ॉक्स में http पोस्ट कॉल में कोई समस्या है। मुझे पता है कि जब क्रॉस उत्पत्ति होती है, तो फ़ायरफ़ॉक्स पहले पहुंच-नियंत्रण-अनुमति हेडर को जानने के लिए POST से पहले एक विकल्प करता है। इस कोड के साथ मुझे नहीं किसी भी समस्या है:जावास्क्रिप्ट

Net.requestSpeech.prototype.post = function(url, data) { 
    if(this.xhr != null) { 
     this.xhr.open("POST", url); 
     this.xhr.onreadystatechange = Net.requestSpeech.eventFunction; 
     this.xhr.setRequestHeader("Content-Type", "application/json; charset=utf-8"); 
     this.xhr.send(data); 
    } 
} 

मैं एक साधारण एचटीएमएल इस समारोह का आह्वान है कि के साथ इस कोड का परीक्षण। सबकुछ ठीक है और मेरे पास विकल्प और पोस्ट की प्रतिक्रिया है, और मैं प्रतिक्रिया को संसाधित करता हूं। लेकिन, मैं jquery उपयोग के साथ एक मौजूदा अनुप्रयोग के साथ इस कोड को एकीकृत करने की कोशिश कर रहा हूं (मुझे नहीं पता कि यह एक समस्या है), जब इस मामले में प्रेषण (डेटा) निष्पादित होता है, ब्राउज़र (फ़ायरफ़ॉक्स) वही करता है, पहले करते हैं एक विकल्प अनुरोध, लेकिन इस मामले में न सर्वर जवाब नहीं मिला और कंसोल में इस संदेश को कहते हैं:

[18:48:13.529] OPTIONS http://localhost:8111/ [undefined 31ms] 

अपरिभाषित ... अपरिभाषित है क्योंकि न प्रतिक्रिया प्राप्त है, लेकिन कोड ही है, मैं पता नहीं क्यों इस मामले में विकल्प प्रतिक्रिया प्राप्त नहीं करता है, किसी के पास कोई विचार है?

मैं अपने सर्वर अनुप्रयोग डिबग और विकल्प सर्वर से ठीक पहुंचें, लेकिन न की तरह ब्राउज़र प्रतिक्रिया के लिए इंतजार ऐसा लगता है।

और बाद में संपादित करें: ठीक है मुझे लगता है कि समस्या तब होती है जब मैं एक एससीआरआईपीटी टैग के साथ एक साधारण एचटीएमएल के साथ चलाता हूं जो अनुरोध करने वाले विधि को आमंत्रित करता है ठीक है, लेकिन इस ऐप में जो प्रतिक्रिया प्राप्त नहीं करता है, मेरे पास फॉर्म जो एक ऑनसममिट ईवेंट करता है, मुझे लगता है कि सबमिट ईवेंट बहुत तेज़ हो जाता है और ब्राउज़र में विकल्प अनुरोध प्राप्त करने का समय नहीं होता है।

संपादित करें और अधिक बाद में बाद में: WTF, मैं समस्या का समाधान सिंक करने के लिए पोस्ट अनुरोध करते हैं:

this.xhr.open("POST", url, false); 

प्रतिक्रिया बहुत जल्दी सबमिट करें और, करने के लिए किसी भी विचार ब्राउज़र का विकल्प जवाबी कार्रवाई के लिए इंतजार नहीं कर सकता इस?

उत्तर

2

उसी मूल नीति के कारण, आप क्रॉस मूल पोस्ट, नहीं भेज सकते हैं, यदि आप iframes (यदि डोमेन तक पहुंच है) में साइट शामिल कर सकते हैं तो मूल साइट में बाहरी साइट पर आईफ़्रेम, आंतरिक दिशा कानूनी ही।