Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Senden von Daten von React an MySQL

Sie müssen das Problem isolieren, indem Sie zunächst überprüfen, ob Ihr Servicepunkt CORS-fähig ist. Um mich ausschließlich auf die CORS-Funktionalität zu konzentrieren, würde ich den MySQL-Code vorübergehend entfernen.

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');
 });

Wenn Ihr Server Port 3300 überwacht, führen Sie den folgenden PREFLIGHT-Befehl am Terminal aus.

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

Wenn die Preflight-Anfrage erfolgreich ist, sollte die Antwort Access-Control-Allow-Origin, Access-Control-Allow-Methods und Access-Control-Allow-Headers

enthalten

Führen Sie nun die POST-Methode aus.

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

Wenn die Post-Anforderung erfolgreich ist, sollte die Antwort Access-Control-Allow-Origin

enthalten

Wenn alles gut aussieht, ist Ihr Server in Ordnung. Sie müssen dann die Post-Methode von Ihrer iOS-App aus ausprobieren.

HINWEIS. Ich wäre auch misstrauisch bei der Verwendung von cors auf localhost. Ich würde 127.0.0.1 einer Domäne zuordnen und die App stattdessen diese Domäne verwenden lassen. Wenn Sie Linux oder Mac verwenden, ändern Sie /etc/hosts. Für Windows ist es c:\windows\system32\drivers\etc\hosts