दिलचस्प पोस्ट
पर्यावरण प्राप्त करने के लिए निश्चित तरीके (यानी कार्यालय संस्करण) एक REST एपीआई / वेब सेवा हासिल करने के लिए सर्वोत्तम अभ्यास सी # में जावा BigDecimal वर्ग के बराबर क्या है? मैं किसी तत्व को एक वर्ग कैसे जोड़ूं? getActionBar शून्य प्रदान करता है एक नया एंड्रॉइड फ्रेगमेंट को शुरू करने के लिए सर्वश्रेष्ठ अभ्यास विंडोज फॉर्म कंट्रोल से नाम से नियंत्रण ढूंढें मैं विंडोज पर पीपी कैसे स्थापित करूं? JQuery गतिशील रूप से जावास्क्रिप्ट फाइल को लोड करने के लिए Git उपवर्तन से बेहतर क्यों है? जावास्क्रिप्ट isDOM है – आप कैसे जांच करते हैं कि जावास्क्रिप्ट ऑब्जेक्ट एक डोम ऑब्जेक्ट है? जावा का उपयोग करके लाइन से एक बड़ी टेक्स्ट फ़ाइल लाइन कैसे पढ़ी जा सकती है? किसी अन्य प्रकार को निशाना बनाने के लिए एक विदग्ध के अभिव्यक्ति के पेड़ को बदलना अपलोड छवि आकार को कम करने के लिए मैं UIImage का आकार कैसे बदलूं? अजगर में द्विआधारी को पूर्णांक परिवर्तित करना

क्रॉस-डोमेन अनुरोध (अंगुलर 2) कैसे बनाएं?

कैसे कोने 2 का उपयोग करते हुए क्रॉस-डोमेन अनुरोध बनाने के लिए? क्या आप एक उदाहरण प्रदान कर सकते हैं? स्थानीय होस्ट के बीच अनुरोध: 3000 और लोकलहोस्ट: 8000 क्रॉस-डोमेन? धन्यवाद।

वेब के समाधान से एकत्रित समाधान "क्रॉस-डोमेन अनुरोध (अंगुलर 2) कैसे बनाएं?"

वास्तव में, क्रोम डोमेन अनुरोधों के संबंध में अंगुलर 2 में कुछ भी नहीं करना है। सीओआरएस नेटवेटिव ब्राउज़र द्वारा समर्थित है यह लिंक आपको यह समझने में सहायता कर सकता है कि यह कैसे काम करता है:

कम होने के लिए, क्रॉस डोमेन अनुरोध के मामले में, ब्राउज़र स्वतः अनुरोध में एक Origin हेडर जोड़ता है। दो मामलों हैं:

  • साधारण अनुरोध यह उपयोग केस लागू होता है अगर हम HTTP GET, HEAD और POST विधियों का उपयोग करते हैं POST विधियों के मामले में, निम्नलिखित मानों के साथ केवल सामग्री प्रकार समर्थित हैं: text/plain , application/x-www-form-urlencoded और multipart/form-data
  • प्रीफ़्लोटेड अनुरोध जब "सरल अनुरोध" का उपयोग करें केस लागू नहीं होता है, तो पहली बार अनुरोध (HTTP विकल्प विधि के साथ) को यह देखने के लिए किया जाता है कि क्रॉस-डोमेन अनुरोधों के संदर्भ में क्या किया जा सकता है।

इसलिए वास्तव में सीओआरएस शीर्षकों को वापस करने के लिए सर्वर के पक्ष में अधिकांश काम करना चाहिए। मुख्य एक Access-Control-Allow-Origin एक है

 200 OK HTTP/1.1 (...) Access-Control-Allow-Origin: * 

ऐसे मुद्दों को डीबग करने के लिए, आप ब्राउज़र (नेटवर्क टैब) के भीतर डेवलपर टूल का उपयोग कर सकते हैं

अंगुल्य 2 के बारे में, बस एचटीटीपी ऑब्जेक्ट का उपयोग किसी अन्य अनुरोध की तरह करें (उदाहरण के लिए एक ही डोमेन):

 return this.http.get('https://angular2.apispark.net/v1/companies/') .map(res => res.json()).subscribe( ... ); 

मेरे लिए यह एक और समस्या थी यह कुछ के लिए तुच्छ हो सकता है, लेकिन मुझे यह पता लगाने में कुछ देर लग गई। तो यह उत्तर कुछ लोगों के लिए सहायक हो सकता है

मेरे पास localhost:58577 API_BASE_URL लिए API_BASE_URL सेट था localhost:58577 दस लाख समय के लिए त्रुटि संदेश को पढ़ने के बाद सिक्का गिर गया। समस्या उस भाग में है जहां यह कहती है कि यह केवल HTTP और कुछ अन्य प्रोटोकॉल का समर्थन करता है। मुझे API_BASE_URL को बदलना पड़ा ताकि इसमें प्रोटोकॉल शामिल हो। तो http://localhost:58577 API_BASE_URL बदलते API_BASE_URL यह पूरी तरह से काम किया।

यह कुछ भी नहीं है जो आप ग्राहक पक्ष में कर सकते हैं। मैं सर्वर के किनारे नियंत्रक में @CrossOrigin को जोड़ @CrossOrigin और यह काम करता है

 @RestController @CrossOrigin(origins = "*") public class MyController 

कृपया दस्तावेज़ देखें।

लिन

 @RestController @RequestMapping(value = "/profile") @CrossOrigin(origins="*") public class UserProfileController { 

SpringRestCrossOrigin एनोटेशन प्रदान करता है, जहां (मूल = "*") किसी भी स्रोत से आरईएस एपीआईएस तक पहुंच की अनुमति देता है।

हम इसे संबंधित एपीआई या पूरे रेस्ट कंट्रोलर में जोड़ सकते हैं।