दिलचस्प पोस्ट
किसी वेबसाइट पर Google डिस्क में संग्रहीत फ़ाइलों को प्रदर्शित करना (उदा Runtime.exec () के साथ पाइप कैसे काम करें? jQuery: कैसे टैग नाम बदलने के लिए? अनपाखे गिट को देखना फेसबुक का एफबी। आईआईटी पूरा होने पर कैसे पता लगाया जाए क्या संकुल अनुक्रमित अद्वितीय होना चाहिए? सीएसएस का उपयोग कस्टम फ़ॉन्ट का उपयोग करना? एक सी # आवेदन में कभी भी व्यावहारिक SecureString है? लिनक्स के लिए वर्चुअल सीरियल पोर्ट mysql_fetch_array () पैरामीटर 1 संसाधन समस्या होने की उम्मीद रेल 3 एक मॉडल के बिना कस्टम एसक्यूएल क्वेरी निष्पादित करें समाधान करने के लिए वेबपैक के साथ पथ की आवश्यकता है Chrome विस्तार में JSON प्राप्त करें क्या एंड्रॉइड प्रोजेक्ट में ग्रेडल के साथ एक्लिप्स को एकीकृत करने का कोई तरीका है? PHP में URL से पार्सिंग डोमेन

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

मैंने 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 

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

धन्यवाद।

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

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

कॉन्फ़िगर फ़ंक्शन के शीर्ष पर अपना 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 में कुछ गड़बड़ है, जो ऐसा नहीं है। हेरोकी में पर्यावरण चर को जोड़ने के मुद्दे को हल किया।

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