Der Versuch, serverseitige API für die Client-Anwendung zu erstellen. Der Client wird komplett auf reagieren geschrieben. In der Entwicklung wird mit webdevserver auf Port bedient 3000. Der Server auf Port hört 3001. Ich habe hinzugefügt Proxy auf die package.json
Datei der Client-Anwendung wie folgt:Proxy-Anforderungen vom Client reagieren App auf Server mit create-react-app und Webpack-Dev-Server
{
"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/"
}
aber sobald ich den Server API bin anfordernden es schlägt fehl:
import Request from 'superagent';
export function searchTasks(text, callback) {
Request.get('http://localhost:3000/api/v1/tasks', response => {
callback(response.body.Search);
})
}
Antwortobjekt ist Null. Wenn ich versuche, API mit 3001 Port anzufordern - alles funktioniert gut. Es sieht so aus, als ob web-dev-server die Anfragen nicht annimmt oder vielleicht einige zusätzliche Konfigurationsoptionen verpasst habe?
Haben Sie stattdessen versucht, '/ api/v1/tasks' zu verwenden, wie die [docs] (https://github.com/facebookincubator/create-react-app/blob/master/packages/react-scripts/ Vorlage/README.md # Proxying-API-Anfragen-in-Entwicklung) schlägt vor? Außerdem bemerke ich, dass Sie "superagent" anstelle des 'fetch'-APIs verwenden - der Wechsel zu letzterem könnte helfen. –
versuchte verschiedene URL, aber das gleiche Problem –
Wie wäre es mit der Änderung Ihres 'Proxy' zu' http: // localhost: 3001' (verlieren Sie die letzte '/')? –