Mysql
 sql >> Base de données >  >> RDS >> Mysql

Envoi de données de React à MySQL

Vous devrez isoler le problème en vérifiant d'abord que votre point de service est activé CORS. Afin de me concentrer uniquement sur la fonctionnalité CORS, je supprimerais temporairement le code 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');
 });

Si votre serveur écoute sur le port 3300, exécutez la commande PREFLIGHT suivante sur le terminal.

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

Si la demande de contrôle en amont aboutit, la réponse doit inclure Access-Control-Allow-Origin, Access-Control-Allow-Methods et Access-Control-Allow-Headers

Exécutez maintenant la méthode POST.

curl -v \
-H "Origin: https://example.com" \
-H "X-Custom-Header: value" \
-X POST \
http://localhost:3300/cors

Si la demande de publication aboutit, la réponse doit inclure Access-Control-Allow-Origin

Si tout semble bon, votre serveur va bien. Vous devez ensuite essayer la méthode de publication à partir de votre application iOS.

REMARQUE. Je me méfierais également de l'utilisation de cors sur localhost. Je mapperais 127.0.0.1 sur un domaine, puis l'application utiliserait ce domaine à la place. Si vous êtes sous Linux ou Mac, vous modifiez /etc/hosts. Pour Windows c'est c:\windows\system32\drivers\etc\hosts