React JsとNode Jsを使用しているときに問題が発生し、React JsからNode Jsにデータを投稿できません。どうしてか分かりません。React JsからNode jsにデータを投稿できません
これは私の完全なコードです。
これは私の反応ファイル 'member.js'で、ポート3000(http://localhost:3000/member)で実行されます。
import React, { Component } from 'react';
import ReactDOM from 'react-dom';
class Member extends Component {
constructor() {
super();
this.state = { player: {} };
}
handleSubmit(e) {
e.preventDefault();
fetch('http://localhost:4000/player', {
mode: 'no-cors',
method: 'post',
headers: {
"Content-Type": "text/plain"
},
body: JSON.stringify({
number: 123,
name: "John",
position: "Andrew"
})
}).then(function(response) {
console.log(response);
}).catch(function(error) {
console.log('Request failed', error)
});
}
render() {
return (
<div className="member-page">
<form>
<input type="submit" onClick={this.handleSubmit.bind(this)} />
</form>
</div>
)
}
}
export default Member;
、これはポート4000(http://localhost:4000/player)上で実行し、私のノードのファイル 'player.js' です。私はミスを行う場所私にはわからない
var http = require('http');
var mysql = require('mysql');
var express = require('express');
var app = express();
var connection = mysql.createConnection({
host: "localhost",
user: "root",
password: "",
database: "react_1"
});
app.post('/player', function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
next();
var player = req.body;
var query = connection.query('INSERT INTO player VALUES ?', player, function(err, result) {
// Neat!
});
res.end('Success');
});
app.listen(4000, function() {
console.log('Example app listening on port 4000!');
});
は、誰もが私のコードのいずれかmember.js
またはplayer.js
を修正してください。
ありがとうございました。
私が間違っているんだけど、私はなら、私を修正CORSが有効になっているときとクライアントでのみサーバーが受け入れているという問題があると思われるあなたの要求は有効になっていません...私はこれについて専門家ではありませんが、助けようとしています – buoyantair
コンソールに表示されるエラーは何ですか –
コンテンツタイプとして 'text/plain'を設定しない場合JSONデータを送信していて、サーバーが['body-parser'](https://www.npmjs.com/package/body-parser)を使用して投稿されたデータを解析していることを確認してください。 – robertklep