Ще трябва да изолирате проблема, като първо проверите дали вашата сервизна точка е активирана 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
Ако заявката за предварителна проверка е успешна, отговорът трябва да включва Access-Control-Allow-Origin, Access-Control-Allow-Methods и Access-Control-Allow-Headers
Сега стартирайте метода POST.
curl -v \
-H "Origin: https://example.com" \
-H "X-Custom-Header: value" \
-X POST \
http://localhost:3300/cors
Ако заявката за публикуване е успешна, отговорът трябва да включваAccess-Control-Allow-Origin
Ако всичко изглежда добре, сървърът ви е наред. След това трябва да опитате метода за публикуване от вашето приложение за iOS.
ЗАБЕЛЕЖКА. Също така бих бил подозрителен към използването на cors на localhost. Бих съпоставил 127.0.0.1 с домейн и след това накарам приложението да използва този домейн вместо това. Ако сте на Linux или Mac, вие променяте /etc/hosts. За Windows това е c:\windows\system32\drivers\etc\hosts