पर create-react-app प्रॉक्सी अनुरोध $ php -S localhost:8888 -t public
के माध्यम से मैं लुमेन (5.3) एपीआई चला रहा हूं जब मैंने पोस्टमैन के माध्यम से कोई एंडपॉइंट मारा है तो यह असफल होने के बिना काम करता है। हालांकि, जब मैं स्थानीय होस्ट कर्ल करने की कोशिश: 8888/v1/प्रमाणन/उदाहरण के लिए लॉगिन मैं कर रहा हूँ निम्न त्रुटि दिया:php बैकएंड
curl: (7) Failed to connect to localhost port 8888: Connection refused
मैंने किया था कुछ इस सवाल पूछने और कुछ उपयोगकर्ताओं को कह रहे थे कि मैं आवश्यकता हो सकती है इससे पहले कि आसपास poking मेरे कुछ मार्गों के लिए सीओआरएस सक्षम करने के लिए। तो मैं आगे बढ़ गया और https://github.com/barryvdh/laravel-cors#lumen स्थापित किया और इसे सभी मार्गों पर लागू किया।
हालांकि, मैं अभी भी अपनी टर्मिनल विंडो से किसी भी अंतराल को मारने में असमर्थ हूं।
अंतिम लक्ष्य
अंत में, लक्ष्य लुमेन बैकएंड करने के लिए एक प्रतिक्रिया आवेदन से प्रॉक्सी अनुरोध करने के लिए है, लेकिन मैं कनेक्शन हो रही इनकार कर दिया रहते हैं।
Proxy error: Could not proxy request /v1/auth/login from localhost:3000 to http://localhost:8888/ . See https://nodejs.org/api/errors.html#errors_common_system_errors for more information (ECONNREFUSED).
क्या यह संभव है कि मैं लुमेन में संभाल CORS मिडलवेयर को गलत कॉन्फ़िगर किया गया है?
अद्यतन
मैं अपने आवेदन सिर्फ अनुरोध में पूर्ण पथ इंजेक्शन लगाने के द्वारा मेरे लुमेन एपीआई के लिए अनुरोध करने के लिए प्रतिक्रिया करने में कामयाब रहे। उदाहरण के लिए, /v1/auth/login
के बजाय पथ अब http://localhost:8888/v1/auth/login
है।
function login(userData, onError, cb) {
return fetch('http://localhost:8888/v1/auth/login', {
mode: 'no-cors',
method: 'post',
body: JSON.stringify(userData),
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
},
}).then(checkStatus)
.then(parseJSON)
.then(cb)
.catch(onError);
}
मोड के बिना :: मैं यह मेरा लाने के लिए mode: 'no-cors'
जोड़कर काम करने के लिए पाने में कामयाब रहे कोई CORS
आदर्श रूप में मैं करूंगा बस return fetch('/v1/auth/login', {
करने और प्रॉक्सी अनुरोध की तरह बिना मोड: नो-कॉर्स लेकिन यह काम नहीं कर रहा प्रतीत होता है। कोई विचार क्यों?
इसके अलावा, कर्ल के साथ समस्या अभी भी बनी हुई है।
लुमेन अनुरोध जब CORS सक्षम नहीं है, कि टूट-क्योंकि है यह 'पहुंच-नियंत्रण-अनुमति दें-उत्पत्ति भेजने के लिए एक सर्वर सिस्टम पर केवल प्रभाव है कि सक्षम करने CORS कि सर्वर सिस्टम पर होना चाहिए सिर्फ पैदा करने के लिए कर रहे हैं को खारिज कर दिया है, तो 'प्रतिक्रिया हेडर और अन्य' एक्सेस-कंट्रोल- * हेडर। सीओआरएस सक्षम नहीं होने से सर्वर को अनुरोधों को मना कर देना नहीं चाहिए; बजाय जहाँ तक CORS चला जाता है के रूप में, केवल जगह किसी भी अवरुद्ध होता है ग्राहक के पक्ष में, जहां ब्राउज़रों एक क्रॉस मूल अनुरोध के जवाब तक पहुँचने जब तक प्रतिक्रिया एक 'पहुंच-नियंत्रण-अनुमति दें-Origin' है से अपने दृश्यपटल कोड को अवरुद्ध कर देगा पर है – sideshowbarker
शीर्षक 'मोड के रूप में जहाँ तक: 'कोई cors'', वहाँ दो असर पड़ता है कि कर रहे हैं। आवेदन/json' उस श्रेणी में हेडर से एक के रूप में परिभाषित किया गया है: पहले यह एक अनुरोध-जहां 'सामग्री प्रकार के लिए किसी भी" कस्टम "शीर्षलेख जोड़कर से अपने दृश्यपटल कोड से बचाता है। दूसरा प्रभाव यह है कि यह ब्राउज़र को आपके परिसर कोड को सभी परिस्थितियों में प्रतिक्रिया तक पहुंचने से रोकने के लिए कहता है। तो सवाल में कोड में, प्रभाव हैं: तक पहुँचने से आवेदन/json' हेडर, और सर्वर प्रतिक्रिया वापस भेजता है, ब्राउज़र ब्लॉक कि कोड: यह अनुरोध के बिना 'सामग्री प्रकार सर्वर के लिए भेजा जाता है। – sideshowbarker
मुझे नहीं पता कि आप कर्ल के साथ क्या समस्या पैदा कर रहे हैं, लेकिन यदि आपका लक्ष्य उस एंडपॉइंट पर POST अनुरोधों के लिए सफलतापूर्वक प्रतिक्रिया प्राप्त करने के लिए है, और यह केवल तब काम करता है जब आप 'मोड:' नो-कॉर्स 'का उपयोग करते हैं, जो ऐसा प्रतीत होता है इंगित करता है कि सीओआरएस प्रीफलाइट विकल्प अनुरोध करते हैं कि ब्राउज़र POST से पहले भेजता है ('सामग्री-प्रकार: एप्लिकेशन/जेसन' हेडर के कारण) विफल रहता है, या सर्वर एक्सेस-कंट्रोल-अनुमति-उत्पत्ति प्रतिक्रिया शीर्षलेख नहीं भेज रहा है। ध्यान दें कि सर्वर पर CORS ठीक से सक्षम नहीं है, तो भी POST अनुरोध अभी भी सफल हो सकता है-यह केवल इतना है कि ब्राउज़र आपके कोड को प्रतिक्रिया तक पहुंचने नहीं देगा। – sideshowbarker