私の反応アプリでpackage.jsonにプロキシを追加しました。プロキシサーバーをポート3001で起動しています。プロキシサーバーを使用しないで反応します
私は両方の斧を使用して試してみましたが、それは重要ではないようです。あなたがそれをチェックアウトしたい場合はlink to the repoです。
そうでない場合は、ここに私の中package.jsonがアプリに反応さ:
{
"name": "client",
"version": "0.1.0",
"private": true,
"proxy": "http://localhost:3001/",
"dependencies": {
"axios": "^0.17.1",
"react": "^16.0.0",
"react-dom": "^16.0.0",
"react-scripts": "1.0.14"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test --env=jsdom",
"eject": "react-scripts eject"
}
}
私の超簡単なサーバー...
const express = require("express");
const bodyParser = require("body-parser");
const app = express();
const PORT = process.env.PORT || 3001;
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
app.use(express.static("client/build"));
app.get("/data", function(req, res){
res.send({someData: 1234});
});
app.listen(PORT, function() {
console.log(" ==> API Server now listening on PORT ${PORT}!");
});
そして、私のApp.js内部を、私は呼び出そうcomponentDidMount関数内のAPI。これらのAPI呼び出しの
componentDidMount(){
fetch("/data").then((data) => console.log(data));
axios.get('/data').then(data => console.log(data));
}
どちらも404を返し、http://localhost:3000/data
任意のアイデアのURL?
ポイント3については、それは当てはまりますが、プロキシが私にしてくれるものです。私は斧を言う。あなたが示唆しているように完全なURLを使用しようとすると、反応すると「No」というアクセス制御が返されます。私はプロキシを使用する必要があります。私はちょうどこれをやっている他のアプリを持っている...私はちょうどそれがこの時間の周りにこの時間を動作していない理由として困っています –
また、これは完全なアプリではないことを修正...これは私が問題は何もありません –
プロキシの詳細を投稿して、おそらくそれを手助けすることができます。 – Kryten