クライアントアプリケーション用のサーバサイドAPIを作成しようとしています。クライアントは完全に反応して書かれています。開発では、私は次のようにクライアントアプリケーションのpackage.json
ファイルにプロキシを追加したサーバーがポート3001 でリッスンしているポート3000上webdevserverで提供しています:クライアントからのプロキシリクエストは、create-react-appおよびwebpack devサーバを使用してサーバに応答します。
{
"name": "client",
"version": "0.1.0",
"private": true,
"devDependencies": {
"react-scripts": "0.8.5"
},
"dependencies": {
"react": "^15.4.2",
"react-dom": "^15.4.2",
"react-router": "^3.0.2",
"superagent": "^3.4.1"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test --env=jsdom",
"eject": "react-scripts eject"
},
"proxy": "http://localhost:3001/"
}
が、私は、サーバーのAPIを要求していたら、失敗します。
import Request from 'superagent';
export function searchTasks(text, callback) {
Request.get('http://localhost:3000/api/v1/tasks', response => {
callback(response.body.Search);
})
}
応答オブジェクトがnullです。 3001ポートのAPIをリクエストしようとすると、すべて正常に動作します。 web-dev-serverがリクエストをプロキシしていないようです。あるいは、追加の設定オプションがありませんでしたか?
代わりに、[docs](https://github.com/facebookincubator/create-react-app/blob/master/packages/react-scripts/)として '/ api/v1/tasks'を実行しようとしましたか?テンプレート/ README.md#proxying-api-requests-in-development)は何を示唆していますか?また、 'fetch' APIではなく' superagent'を使用していることに気付きました。後者への切り替えは役に立ちます。 –
は別のURLを試みましたが、同じ問題 –
'proxy:'を 'http:// localhost:3001'(最後の'/'を失う)に変更するのはどうですか? –