आपको पहले यह सत्यापित करके समस्या को अलग करना होगा कि आपका सेवा बिंदु CORS सक्षम है। केवल CORS कार्यक्षमता पर ध्यान केंद्रित करने के लिए, मैं अस्थायी रूप से MySQL कोड को हटा दूंगा।
const express = require('express');
const bodyParser = require('body-parser');
const cors = require('cors');
const app = express();
app.use(cors());
app.get('/', function(req, res){
var root = {};
root.status = 'success';
root.method = 'index';
var json = JSON.stringify(root);
res.send(json);
});
app.post('/cors', function(req, res) {
var root = {};
root.status = 'success';
root.method = 'cors';
var json = JSON.stringify(root);
res.send(json);
})
// Start the server
app.listen(3300, () => {
console.log('Listening on port 3300');
});
एक आपके पास पोर्ट 3300 पर सर्वर सुन रहा है, टर्मिनल पर निम्न PREFLIGHT कमांड चलाएँ।
curl -v \
-H "Origin: https://example.com" \
-H "Access-Control-Request-Headers: X-Custom-Header" \
-H "Acess-Control-Request-Method: POST" \
-X OPTIONS \
http://localhost:3300
यदि प्रीफ़्लाइट अनुरोध सफल होता है, तो प्रतिक्रिया में एक्सेस-कंट्रोल-अनुमति-उत्पत्ति, एक्सेस-कंट्रोल-अनुमति-विधियां, और एक्सेस-कंट्रोल-अनुमति-हेडर शामिल होना चाहिए
अब POST विधि चलाएँ।
curl -v \
-H "Origin: https://example.com" \
-H "X-Custom-Header: value" \
-X POST \
http://localhost:3300/cors
यदि पोस्ट अनुरोध सफल होता है, तो प्रतिक्रिया में एक्सेस-कंट्रोल-अनुमति-उत्पत्ति शामिल होनी चाहिए
अगर सब कुछ अच्छा दिखता है, तो आपका सर्वर ठीक है। फिर आपको अपने आईओएस ऐप से पोस्ट विधि को आजमाने की जरूरत है।
टिप्पणी। मुझे स्थानीयहोस्ट पर cors का उपयोग करने का भी संदेह होगा। मैं एक डोमेन के लिए 127.0.0.1 मैप करूंगा और उसके बाद ऐप को उस डोमेन का उपयोग करना होगा। यदि आप Linux या Mac पर हैं, तो आप /etc/hosts को संशोधित करते हैं। विंडोज़ के लिए यह c:\windows\system32\drivers\etc\hosts
. है