2015-06-11 8 views
6

मल्टी डिवाइस हाइब्रिड ऐप पर काम करते समय मुझे विजुअल स्टूडियो के साथ कोई समस्या है। जब मैं किसी बाहरी webservice पर AJAX कॉल करने का प्रयास करता हूं, और लहर में कुछ त्रुटियां प्राप्त करता हूं। (क्रॉस डोमेन सुरक्षा मुद्दे)। मोबाइल डिवाइस पर तैनाती करते समय मेरा कोड ठीक काम करता है।विजुअल स्टूडियो, रिपल एमुलेटर और सीओआरएस/क्रॉस डोमेन अजाक्स

  • लहर का अपना प्रॉक्सी सेटिंग्स

    • लहर में, पर निर्भर करता है सेटिंग पर जाएं, और स्थानीय विकलांग, या दूरदराज के चयन (है:

      अनुसंधान से मैं निम्नलिखित पाया आपकी स्थिति) प्रॉक्सी सेटिंग पर।

    • यह कुछ लोगों के लिए काम करना प्रतीत होता था, लेकिन अब मुझे एक अलग त्रुटि है। (खराब अनुरोध)
  • मुझे अधिक जानकारी मिली है कि जब आप इसे चलाते हैं तो कमांड लाइन स्विच के माध्यम से क्रोम को किसी भी वेब सुरक्षा मोड में शुरू नहीं किया जा सकता है।

    • इसके साथ समस्या यह है कि विजुअल स्टूडियो क्रोम के पथ को कड़ी मेहनत कर रहा है, यह लहर को खोलने के लिए उपयोग करता है।
    • मैं इसलिए नहीं कर सकते कोई वेब सुरक्षा मोड में क्रोम शुरू ...

उत्तर

5

मुझे लुई के समान ही समस्या थी, लेकिन क्रोम 48 के बाद से सभी सीओआरएस एक्सटेंशन काम करना बंद कर देते हैं। मैं एक वैकल्पिक समाधान के साथ आया हूं जिसे मैंने सोचा था कि मैं साझा करूंगा।

  1. अपने Chrome स्थापना निर्देशिका में - शायद C: \ Program Files (x86) \ Google \ क्रोम \ आवेदन -
  2. राइट इस शॉर्टकट पर क्लिक करें chrome.exe के लिए एक शॉर्टकट का चयन करें और प्रॉपर्टी बनानी
  3. शॉर्टकट टैब पर, लक्ष्य फ़ील्ड में निम्न दो फ़ील्ड संलग्न करें - फाइल-एक्सेस-से-फ़ाइलों - अक्षम-वेब-सुरक्षा 4।इस सेव करें और शॉर्टकट के लिए नाम बदलने "गूगल क्रोम - लहर के साथ डीबग"
  4. सही उस पर क्लिक करें और पिन करें का चयन करने के लिए प्रारंभ मेनू

यह शॉर्टकट आप कोई वेब सुरक्षा, जो CORS की अनुमति देता है के साथ क्रोम चलाने के लिए अनुमति देगा लहर में शॉर्टकट का उपयोग करके यह क्रोम के आपके सामान्य उपयोग में हस्तक्षेप नहीं करेगा। अब आदेश अपने अनुप्रयोग डिबग जो अपनी ही क्रोम उदाहरण में लहर शुरू कर देंगे लहर

  1. उपयोग करने के लिए दृश्य स्टूडियो में
  2. अब प्रारंभ मेनू खोलने के साथ खूंटी पर क्लिक करें में "गूगल क्रोम - लहर के साथ डीबग" शॉर्टकट
  3. क्रोम का दूसरा उदाहरण "एक असमर्थित कमांड-लाइन ध्वज का उपयोग कर रहे हैं: - अक्षम-वेब-सुरक्षा का उपयोग कर रहे हैं।" स्थिरता और सुरक्षा भुगतनी होगी।
  4. कॉपी इस नए एक करने के लिए दृश्य स्टूडियो उदाहरण से लहर प्रॉक्सी URL, उदाहरण के http://localhost:4400/index.html?enableripple=cordova-3.0.0-NexusS
  5. आपका CORS अनुरोध अब लहर में काम करेंगे के लिए।

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

नोट आप दोगुना कर सकते हैं यह भी कहा कि जांच कर लें कि क्रोम अपने शॉर्टकट झंडे उपयोग कर रहा है यूआरएल क्रोम पर ब्राउज़ कर: // संस्करण/

आशा इस मदद करता है!

+0

धन्यवाद @Chris। मुझे लगता है कि हमें आपके उत्तर को सही उत्तर के रूप में चिह्नित करना चाहिए क्योंकि यह नए क्रोम संस्करणों के साथ अधिक प्रासंगिक है। –

+0

धन्यवाद @ लुइस। उम्मीद है कि यह उपयोगी है। – Chris

+0

उत्तर के लिए धन्यवाद। यदि आपने क्रोम का एक उदाहरण खोला है तो यह काम नहीं करेगा। आपको एक अलग उदाहरण में होना चाहिए - कृपया इस उत्तर का संदर्भ लें http://stackoverflow.com/a/19317888/1099945 – gyosifov

3

मैं इस समस्या को डाउनलोड करने और एक क्रोम एक्सटेंशन को इंस्टॉल करने के अनुसार क्रमबद्ध, कि वेब सुरक्षा सेटिंग 'पर' 'सेट और मिल गया '। विस्तार के लिए

लिंक: https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi?utm_source=chrome-app-launcher-info-dialog

  • दृश्य स्टूडियो Chrome का एक अलग/दूसरी प्रति को चलाने के लिए लगता है।
  • आपको क्रोम इंस्टेंस में एक्सटेंशन इंस्टॉल करना होगा कि वीएस खुलने पर वीएस खुलता है। यदि आप अपने सामान्य क्रोम ब्राउज़र में एक्सटेंशन इंस्टॉल करते हैं, तो यह उदाहरण में उपलब्ध नहीं है कि वीएस उपयोग करता है।
  • तब मुझे अपनी लहर प्रॉक्सी सेटिंग को अक्षम करने के लिए सेट करना पड़ा।
  • कॉल भी विफल रहता है अगर मैं पहले से ही सीओआरएस सेटिंग के साथ लहर में डीबग करता हूं। मुझे भौतिक रूप से स्विच, ऑफ, और फिर फिर से फ्लिप करना होगा, हर बार जब मैं लहर में डीबग करता हूं, अन्यथा मुझे क्रॉस डोमेन समस्याएं मिलती हैं।

अब सब अच्छा है, जीवन चल सकता है।

1

लहर एमुलेटर में क्रॉस-डोमेन प्रॉक्सी को अक्षम करने के लिए एक अतिरिक्त टिप्पणी के रूप में ...

आप Azure मोबाइल Apps एपीआई जैसी API, बुला रहे हैं, तो न की स्थापना करके एपीआई के लिए बाहरी कॉल अनुमति देने के लिए भूल जाते हैं " अभिगम-नियंत्रण-अनुमति-उत्पत्ति "किसी भी" ध्वज "।

मेरे परिदृश्य में मैं बैजेंड के रूप में एज़ूर मोबाइल ऐप का उपयोग करके एक आयनिक v1 ऐप विकसित कर रहा हूं।

web.config में >>

<configuration> 
<system.webServer> 
    <httpProtocol> 
    <customHeaders> 
     <add name="Access-Control-Allow-Origin" value="*" /> 
    </customHeaders> 
    </httpProtocol> 
</system.webServer> 

</configuration> 
+0

मेरे लिए काम नहीं किया! –

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