दिलचस्प पोस्ट
प्रोजेक्ट लक्ष्यीकरण 4.0 में मैं async कीवर्ड का उपयोग कैसे कर सकता हूं विभिन्न एंड्रॉइड डिवाइस पर उपलब्ध ओपनजीएल एक्सटेंशन कॉलिंग सुपर () ECMAScript6 तीर फ़ंक्शन जो एक ऑब्जेक्ट देता है पीआईपी कनेक्शन विफलता: इंडेक्स बेस यूआरएल को नहीं लाया जा सकता http://pypi.python.org/simple/ पायथन / मेटप्ललिब: एक 3 डी क्यूब, एक गोलाकार और एक वेक्टर की साजिश रचने वाला? क्या आपको कभी भी 'जावास्क्रिप्ट:' को ऑनक्लिक में निर्दिष्ट करने की ज़रूरत है? सर्विसेटेक रीस्ट एपीआई और कॉरस फायरबेज क्वेरी – उस स्ट्रिंग वाले बच्चे के साथ आइटम ढूंढें कैसे: matplotlib के साथ ticks की संख्या को कम नोडजेएस बेस 64 इमेज एन्कोडिंग / डिकोडिंग काफी काम नहीं कर रहा है Ninject समर्थन Func (ऑटो उत्पन्न कारखाने) करता है? एक LinearLayout के लिए एक प्रतिशत की चौड़ाई निर्धारित करना? क्या LINQ का उपयोग करके पिवट डेटा के लिए संभव है? Maven "प्रतीक नहीं मिल सकता है" संदेश बेकार है

हरको पर एक एक्सप्रेस / नोड.जेएस एप्लिकेशन को कॉस रिकस्ट अनुरोध की अनुमति दें

मैंने Node.js के लिए एक्सप्रेस ढांचे पर एक REST एपीआई लिखा है जो क्रोम में जेएस कंसोल और यूआरएल बार आदि से अनुरोध करता है। अब मैं इसे किसी दूसरे ऐप से अनुरोध करने के लिए अलग-अलग पर काम करने का प्रयास कर रहा हूं। डोमेन (सीओआरएस)

पहला अनुरोध, जावास्क्रिप्ट फ़्रंट एंड द्वारा स्वचालित रूप से बनाया गया है, / api / search to? Uri = है, और "प्रीफलाइट" ऑप्शन अनुरोध पर असफल दिखता है।

मेरे एक्सप्रेस एप में, मैं सीओआरएस हेडर को जोड़ रहा हूं:

var allowCrossDomain = function(req, res, next) { res.header('Access-Control-Allow-Origin', '*'); res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS'); res.header('Access-Control-Allow-Headers', 'Content-Type, Authorization, Content-Length, X-Requested-With'); // intercept OPTIONS method if ('OPTIONS' == req.method) { res.send(200); } else { next(); } }; 

तथा:

 app.configure(function () { app.use(express.bodyParser()); app.use(express.methodOverride()); app.use(app.router); app.use(allowCrossDomain); app.use(express.static(path.join(application_root, "public"))); app.use(express.errorHandler({ dumpExceptions: true, showStack: true })); }); 

क्रोम कंसोल से मैं ये हेडर प्राप्त करता हूं:

अनुरोध यूआरएल: http: //furious-night-5419.herokuapp.com/api/search?uuri = http% 3A% 2F% 2Flocalhost% 3A5000% 2Fcollections% 2F1% 2Fdocuments% 2F1

अनुरोध विधि: विकल्प

स्थिति कोड: 200 ठीक है

अनुरोध शीर्षलेख

 Accept:*/* Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3 Accept-Encoding:gzip,deflate,sdch Accept-Language:en-US,en;q=0.8 Access-Control-Request-Headers:origin, x-annotator-auth-token, accept Access-Control-Request-Method:GET Connection:keep-alive Host:furious-night-5419.herokuapp.com Origin:http://localhost:5000 Referer:http://localhost:5000/collections/1/documents/1 User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.56 Safari/536.5 

क्वेरी स्ट्रिंग पैरामीटर

 uri:http://localhost:5000/collections/1/documents/1 

रिस्पांस हेडर

 Allow:GET Connection:keep-alive Content-Length:3 Content-Type:text/html; charset=utf-8 X-Powered-By:Express 

क्या यह एपीआई आवेदन द्वारा उचित हेडर की कमी की तरह दिखता है?

धन्यवाद।

Solutions Collecting From Web of "हरको पर एक एक्सप्रेस / नोड.जेएस एप्लिकेशन को कॉस रिकस्ट अनुरोध की अनुमति दें"

मैंने आपके कोड को क्लीन एक्सप्रेस जेएस ऐप पर चेक किया है और यह सिर्फ ठीक काम करता है।

कॉन्फ़िगर फ़ंक्शन के शीर्ष पर अपना app.use(allowCrossDomain) को अनुमति app.use(allowCrossDomain) स्थानांतरित करने का प्रयास करें।

क्रेडेंशियल के साथ कुकीज़ का समर्थन करने के लिए आपको इस लाइन की जरूरत है xhr.withCredentials = true;

एमडीएन डॉक्स xhr.withCredentials

एक्सप्रेस सर्वर में सभी ब्लॉक से पहले इस ब्लॉक को जोड़ दें

 `app.all('*', function(req, res, next) { var origin = req.get('origin'); res.header('Access-Control-Allow-Origin', origin); res.header("Access-Control-Allow-Headers", "X-Requested-With"); res.header('Access-Control-Allow-Headers', 'Content-Type'); next(); });` 

यह इस मामले को ब्राउज़ करने वाले ज्यादातर लोगों के लिए मामला नहीं हो सकता है, लेकिन मुझे यह सटीक एक ही समस्या थी और समाधान CORS से संबंधित नहीं था।

यह पता चला है कि JSON वेब टोकन गुप्त string को पर्यावरण चर में परिभाषित नहीं किया गया था, इसलिए टोकन पर हस्ताक्षर नहीं किया जा सका। यह किसी भी POST अनुरोध के कारण होता है जो टाइमआउट प्राप्त करने के लिए टोकन को चेक या हस्ताक्षर करने पर निर्भर करता है और 503 त्रुटि लौटाता है, ब्राउज़र को बता रहा है कि CORS में कुछ गड़बड़ है, जो ऐसा नहीं है। हेरोकी में पर्यावरण चर को जोड़ने के मुद्दे को हल किया।

मुझे उम्मीद है इससे किसी को सहायता मिलेगी।