मेरे पास एक दूरस्थ सर्वर में होस्ट किए गए लैरवेल 5.1 में एक आरईएसटी एपीआई है। अब, मैं उस एपीआई को किसी अन्य वेबसाइट से उपभोग करने की कोशिश कर रहा हूं (जो कि मेरे पास स्थानीय है)।प्रीफलाइट अनुरोध का जवाब एक्सेस नियंत्रण पास नहीं करता है लैरावेल और अजाक्स कॉल
लार्वेल में मैंने सीओआरएस हेडर भेजने के लिए आवश्यक लाइनें सेट की हैं। मैंने पोस्टमैन का उपयोग करके एपीआई का भी परीक्षण किया और सबकुछ ठीक लगता है!
var url="http://xxx.xxx.xxx.xxx/apiLocation";
var data=$("#my-form").serialize();
$.ajax({
type: "POST",
url: url,
data: data,
headers: { 'token': 'someAPItoken that I need to send'},
success: function(data) {
console.log(data);
},
dataType: "json",
});
खरीदें तो मैं कंसोल में इस त्रुटि मिलती है:
दृश्यपटल में
फिर, वेबसाइट में मैं ajax का उपयोग कर पोस्ट अनुरोध, इस कोड के साथ भेजा
XMLHttpRequest http://xxx.xxx.xxx.xxx/apiLocation लोड नहीं कर सकता है। प्रीफलाइट अनुरोध का जवाब एक्सेस नियंत्रण चेक पास नहीं करता है: 'एक्सेस-कंट्रोल-अनुमति-उत्पत्ति' हेडर अनुरोधित संसाधन पर मौजूद है। उत्पत्ति 'http://localhost' इसलिए पहुंच की अनुमति नहीं है।
बैकएंड
एपीआई मैं इस सेट में (हेडर स्थापित करने के लिए एक Laravel मिडिलवेयर का उपयोग) में:
return $next($request)
->header('Access-Control-Allow-Origin', '*')
->header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS');
तो, मैं लेकर संदेह में हूँ जहां वास्तव में है मुसीबत।
- सर्वर में? लेकिन फिर पोस्टमैन के साथ ठीक क्यों काम करते हैं?
- अजाक्स कॉल में है? तो, मुझे क्या जोड़ना चाहिए?