sql >> データベース >  >> RDS >> Mysql

ReactからMySQLへのデータの送信

    最初にサービスポイントが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アプリからpostメソッドを試す必要があります。

    ノート。また、ローカルホストでcorsを使用することも疑わしいと思います。 127.0.0.1をドメインにマッピングしてから、代わりにそのドメインをアプリに使用させます。 LinuxまたはMacを使用している場合は、/ etc/hostsを変更します。 Windowsの場合はc:\ windows \ system32 \ drivers \ etc \ hosts



    1. 更新変数のMYSQLストアドプロシージャは0です

    2. ポート5432がブロックされている場合のリモートサーバーからのpg_dumppostgresデータベース

    3. DAOでのMicrosoftSQLストアドプロシージャの大きなパラメータの使用

    4. MySQLとPHP:複数のキーワード検索