2012-08-27 25 views
14

मेरे पास एक HTML5/जावास्क्रिप्ट ऐप है जिसे मूल रूप से कुछ कारों में चलाने के लिए लिखा गया था। असल में, मुझे ब्राउज़र में एक साधारण डेमो के लिए ब्राउज़र में चलाने के लिए अपना ऐप सेट अप करने की आवश्यकता है।मोबाइल सफारी में समान उत्पत्ति नीति अक्षम करें

मैं jQuery .ajax का उपयोग कर रहा हूं जो समान उत्पत्ति नीति के कारण समस्याएं पैदा कर रहा है। मुझे डेस्कटॉप ब्राउज़र में इसे अक्षम करने के कई तरीके मिल गए हैं, लेकिन मोबाइल नहीं।

मेरा लक्ष्य मोबाइल सफारी में आईपैड पर ऐप को डेमो करना है। क्या आईपैड पर उसी मूल नीति को अस्थायी रूप से अक्षम करने का कोई तरीका है?

+1

+1, मुझे इसका उत्तर भी पसंद आएगा। –

+0

क्या आपने सर्वर पर हेडर एक्सेस-कंट्रोल-अनुमति-उत्पत्ति: * सेट करने की कोशिश की है? –

+0

दुर्भाग्यवश मेरे पास सर्वर पर कोई नियंत्रण नहीं है, मैं AJAX कॉल कर रहा हूं। मेरा शॉर्ट-टर्म समाधान उसी सर्वर पर एक php प्रॉक्सी स्क्रिप्ट होस्ट करना था जिसे मैंने अपना एचटीएमएल/जेएस होस्ट किया था। सौभाग्य से, मुझे जिस सेवाओं की आवश्यकता थी, उन्होंने अंततः सीओआरएस हेडर को उनके जवाबों में जोड़ा जो मुझे मेरी प्रॉक्सी स्क्रिप्ट से दूर करने की इजाजत देता था। – Danny

उत्तर

0

आपको फ़ाइल प्रोटोकॉल नहीं, वेब सर्वर चलाने की आवश्यकता है।

+0

इसे पहली बार आईपैड से एक्सेस करने के लिए वेब सर्वर पर चलना होगा। समस्या यह है कि मेरे द्वारा कॉल की जाने वाली सेवाओं पर मेरा कोई नियंत्रण नहीं है, जिसमें उनके प्रतिक्रियाओं में सीओआरएस हेडर शामिल नहीं हैं। जिस समाधान के साथ मैं आया था वह उसी सर्वर पर एक PHP प्रॉक्सी स्क्रिप्ट होस्ट करने के लिए था जो मेरे एचटीएमएल/जेएस के रूप में था। – Danny

0

असल में, आपको एक शीर्षलेख की आवश्यकता है।

इस कोड को उस पेज के शीर्ष पर रखें जिस पर आप क्रॉस डोमेन अनुरोध भेजना चाहते हैं।

<?php header("Access-Control-Allow-Origin: *"); ?> 

* के साथ सावधान रहें, क्योंकि इससे किसी भी वेबसाइट को उस पृष्ठ पर अनुरोध भेजने की अनुमति मिलती है, जिससे वह हेडर भेजा जाता है।

* को डोमेन के साथ प्रतिस्थापित किया जा सकता है, जैसे example.com, example.net।

0

जावास्क्रिप्ट में यह संभव हो सकता है यदि आप एक सार्वजनिक प्रॉक्सी में AJAX कॉल का उपयोग करते हैं जो मूल रूप से उसी मूल शीर्षलेख को हटा देता है। या आप एक php curl पृष्ठ प्राप्त कर सकते हैं जहां आप AJAX का उपयोग करने के लिए कॉल करते हैं। इस चेक पर कोड इस ब्लॉग पोस्ट के लिए:

http://thewebtimes.tumblr.com/post/90549614884/access-forbidden-webpages-with-javascript

1

मैं एक Sencha ऐप्स में वही समस्या थी।

var BASEPATH = 'http://192.168.1.200/myapp'; 

$.ajax({ 
    url: BASEPATH+'/someaction' 
}); 

और मोबाइल के साथ मैं http://192.168.1.200/myapp

मेरे समस्या उस तक पहुँच से है कि मोबाइल से मैं केवल आईपी लेकिन साथ पहुँच प्राप्त था ajax: मैं ajax कॉल, उदाहरण मेरी जावास्क्रिप्ट करने के लिए एक आधार पथ की स्थापना द्वारा हल कॉल लोकहोस्ट को इंगित किया गया था।

आशा है कि यह चाल मदद करेगी।