मैं एक AngularJS/Cordova एप्लिकेशन जो चुनाव एक दूरस्थ सर्वर पर एक JSON सेवा:
$http({method: 'GET', url: 'http://example.com/index.php'})
ब्राउज़र में विकास और बंद चल रहा है मेरी इंट्रानेट अपाचे सर्वर (http://dev
) मैं "नहीं 'पहुंच-नियंत्रण-अनुमति दें-उत्पत्ति' शीर्षक मौजूद है" इसलिए मैं इस जोड़कर तय:
Header set Access-Control-Allow-Origin "http://dev"
सभी ठीक काम करता है, और मैं अपने क्रोम देव उपकरणों में Origin:http://dev
देखते हैं।
तो, इस बारे में पहली बार सोचने के लिए, मुझे आश्चर्य है कि ऐप एंड्रॉइड/आईओएस वेबव्यू में ऐप कब होगा। मैं अपने उपकरणों पर निर्माण और तैनाती करने का निर्णय लेता हूं और रिमोट डीबगिंग (आईओएस के लिए सफारी और एंड्रॉइड के लिए वेनरे) में एक ही त्रुटि देखने की उम्मीद करता हूं, लेकिन मेरे आश्चर्य के लिए यह काम करता है (बिना किसी कोरर्स हेडर भेजने के)! मुझे यह भी लगता है कि दोनों डिवाइसों में ऐप फोन ओएस द्वारा प्रदान किए गए कुछ प्रकार के http सर्वर के बजाय फ़ाइल: // योजना के तहत वेबव्यू में चलाता है (जिसे मैंने माना)।
तो शोध यह सुझाव देता है कि फ़ाइल के लिए सीओआरएस की आवश्यकता नहीं है: // - ऐसी साइट "किसी भी डोमेन पर किसी भी एक्सएचआर संसाधन का उपयोग कर सकती है। लेकिन, जब मैं डेस्कटॉप ब्राउज़र पर इसका परीक्षण करता हूं तो मुझे लगता है कि सफारी नहीं है फ़ाइल के लिए CORS की जरूरत: // लेकिन क्रोम करता है, और फ़ायर्फ़ॉक्स CORS
बिना किसी भी तरह से काम करता हैतो मेरे सवालों का:
1) क्यों अपने Android/iOS में CORS बिना काम अनुप्रयोग है - यह है, क्योंकि CORS नहीं है फ़ाइल पर लागू करें: //, या, कॉर्डोवा इसे डिवाइस में काम करने के लिए कुछ कर रहा है?
मेरे पास <access origin="*"/>
है मेरी कॉन्फ़िगरेशन में
2) यदि, प्रश्न 1 के लंबित उत्तर हैं, तो मुझे सुरक्षित साइट पर होना चाहिए और स्पष्ट रूप से ऐप्स से अनुरोधों की अनुमति देना चाहिए, आप फ़ाइल के लिए एक्सेस-कंट्रोल-अनुमति-उत्पत्ति किस मूल्य को देते हैं: // "होस्ट"? मेरे डीबगिंग में फ़ाइल से अनुरोधों में कोई मूल शीर्षलेख नहीं है: //
3) रिमोट सर्वर पर XHR अनुरोध को अवरुद्ध करने के अलावा, क्रोम भी मेरे ऐप टेम्पलेट्स को अवरुद्ध कर रहा है (मैं अलग-अलग फ़ाइलों का उपयोग कर रहा हूं) निचे देखो। क्या यह मेरे ऐप के साथ एक संभावित समस्या है, या सिर्फ एक क्रोम मुद्दा है जिसके बारे में मुझे चिंता करने की आवश्यकता नहीं है?
XMLHttpRequest cannot load file:///Volumes/projects/phonegap/www/templates/tabs.html. Cross origin requests are only supported for HTTP.
आपकी प्रतिक्रिया के लिए धन्यवाद के लिए। मैंने वास्तव में आपके द्वारा पोस्ट किए गए अधिकांश लिंक देखे थे। मेरे क्यू 3 के अनुसार, क्रोम मेरे रिमोट सर्वर और टेम्पलेट्स के लिए स्थानीय अनुरोध दोनों को अवरुद्ध कर रहा है, क्या मैं इसे अनदेखा कर सकता हूं और सफारी के साथ काम कर सकता हूं? – KevInSol
@KevInSol मैं क्रोम को अनदेखा कर दूंगा और स्थानीय विकास के लिए सफारी या फ़ायरफ़ॉक्स के साथ काम करूंगा। कृपया उत्तर पर मेरा अंतिम अपडेट देखें - मैंने क्रोमियम डेवलपर्स से चर्चा के लिए एक लिंक शामिल किया है जो उस मुद्दे को चिह्नित करता है क्योंकि उनके लिए ठीक नहीं होगा। – Blaise
धन्यवाद ब्लैज, मैं वास्तव में आईओएस पर रिमोट डीबगिंग की आसानी के लिए पिछले कुछ दिनों में सफारी का उपयोग कर रहा हूं। मैं देखता हूं कि आपके द्वारा पोस्ट किया गया लिंक बहुत पुराना है, लेकिन मुझे लगता है कि स्थिति वही है। आपकी सहायताके लिए धन्यवाद! – KevInSol