2017-06-05 3 views
2

Ich versuche, einige Daten vom Entwicklungsserver mithilfe von React abzurufen.Proxy in package.json hat keine Auswirkungen auf Abrufanforderung

Ich verwende den Client unter localhost:3001 und das Back-End unter port 3000.

Die Abrufanforderung:

const laina = fetch('/api/users'); 
    laina.then((err,res) => { 
     console.log(res); 
    }) 

Wenn ich meine Entwicklungs-Server und webpack-dev-Server laufen bekomme ich folgende Ausgabe:

GET http://localhost:3001/api/users 404 (Not Found) 

Ich habe versucht, den Proxy in der Angabe package.json so würde es die Anfrage an den API-Server Proxy, aber nichts hat sich geändert.

Hier ist meine package.json Datei:

enter image description here

.. und der webpack.config: enter image description here

Bitte sagen Sie mir, wenn Sie irgend etwas anderes sehen müssen von meinem Projekt. Ich entschuldige mich, wenn ich etwas verpasse und nicht gründlich genug bin, bin ich noch ziemlich neu in der Verwendung dieser Technologien.

+1

Wenn Ihr Server auf localhost läuft: 3000 ändern Sie dann Ihre fetchRequest wie 'fetch ('http: // localhost: 3000/api/users')' stellen Sie auch sicher, dass Sie cors in Ihrem Backend aktiviert haben –

+0

Vielen Dank dafür. –

+0

Löst es Ihr Problem –

Antwort

3

können Sie ändern Ihre Anfrage API URL holen die vollständige Hostnamen zu geben, da

fetch('http://localhost:3000/api/users') 

auch sicherstellen, dass Sie CORS aktiviert auf Ihrem Backend haben

Wenn Ihr Mangel thourgh webpack, Ihr Lieblings umleiten versuchen devServer.proxy als

devServer: { 
    inline: true, 
    contentBase: './dist', 
    port: 3001, 
    proxy: { "/api/**": { target: 'http://localhost:3000', secure: false } } 
} 
+0

Sie sollten niemals cors aktivieren. –

+0

@AakashVerma, Ich würde nicht mit Ihrem Kommentar vollständig einverstanden sein, müssen Sie Cors aktivieren, wenn Sie Daten an ein Frontend, das auf einer anderen Domäne ist, dienen müssen, aber ich würde zustimmen, dass Sie einen Filter auf Domänen setzen möchten dem du vertraust –

0

Der Webpack Dev Server verwendet devServer.proxy config in Ihrer Webpack-Konfiguration, um Proxyanforderungen zu steuern.

+0

Vielen Dank für die schnelle Antwort. Ich habe versucht, den Proxy im devServer anzugeben, leitet die Anfrage jedoch immer noch nicht an den api-Server weiter. 'devserver: { inline: true, Contentbase: './dist', Port: 3001, Proxy: { "/ api": "http: // localhost: 3000" } }' die allgemeinen Überschriften in dem Registerkarte Netzwerk: 'Anforderungs-URL: http: // localhost: 3001/api/users anfordern Methode: den Status Code: 304 nicht geändert Fern Adresse: 127.0.0.1: 3001' –

Verwandte Themen