sql >> Databasteknik >  >> RDS >> Mysql

Skickar data från React till MySQL

Du måste isolera problemet genom att först verifiera att din servicepunkt är CORS-aktiverad. För att enbart fokusera på CORS-funktionalitet skulle jag ta bort MySQL-koden tillfälligt.

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

En du har server som lyssnar på port 3300, kör följande PREFLIGHT-kommando på terminalen.

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

Om preflight-begäran lyckas ska svaret inkludera Access-Control-Allow-Origin, Access-Control-Allow-Methods och Access-Control-Allow-Headers

Kör nu POST-metoden.

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

Om inläggsbegäran lyckas ska svaret innehålla Access-Control-Allow-Origin

Om allt ser bra ut är din server okej. Du måste sedan prova postmetoden från din iOS-app.

NOTERA. Jag skulle också vara misstänksam mot att använda cors på localhost. Jag skulle mappa 127.0.0.1 till en domän och sedan låta appen använda den domänen istället. Om du använder Linux eller Mac, ändrar du /etc/hosts. För Windows är det c:\windows\system32\drivers\etc\hosts



  1. Inloggningsflöde i R12.2 och grundläggande felsökning

  2. MySQL Hitta det totala antalet inlägg per användare

  3. C++-bindningar för MySQL

  4. Ogiltig syntaxfeltyp=MyISAM i DDL genererad av Hibernate