Réagir Proxy erreur: impossible de demande de proxy /api/ à partir de localhost:3000 à http://localhost:8000 (ECONNREFUSED)
J'ai une Réagir frontend qui utilise jwt pour s'authentifier avec le Django backend. Le backend œuvres et de la connexion d'un peu fine à l'aide de django points de vue, mais lorsque je tente de proxy une demande de Réagir, il me donne un lien a Refusé d'erreur.
Proxy erreur: impossible de demande de proxy /api/auth/jeton/obtenir/de localhost:3000 à http://localhost:8000 (ECONNREFUSED).
De la connexion à http://localhost:8000/api/auth/token/obtain/ fonctionne normalement. Et l'envoi d'une requête POST avec Axios fonctionne aussi normalement et renvoie le jeton json. Mais quand je proxy avec nœud, il ne fonctionne pas.
Dans mon package.json
j'ai:
"proxy": {
"/api/*": {
"target": "http://localhost:8000"
}
},
Edit: Public des pensions de. Vous pouvez exécuter facilement si vous avez le panneau installé. (utilise 1 image et de 2 conteneurs). Après le clonage il suffit d'exécuter docker-compose build
, puis docker-compose up
.
Edit2: en-Têtes de demande:
*General*
Request URL: http://localhost:3000/api/auth/token/obtain/
Request Method: POST
Status Code: 500 Internal Server Error
Remote Address: [::1]:3000
Referrer Policy: no-referrer-when-downgrade
*Response Headers*
HTTP/1.1 500 Internal Server Error
X-Powered-By: Express
Date: Mon, 30 Apr 2018 21:23:17 GMT
Connection: keep-alive
Transfer-Encoding: chunked
*Request Headers
POST /api/auth/token/obtain/ HTTP/1.1
Host: localhost:3000
Connection: keep-alive
Content-Length: 45
Pragma: no-cache
Cache-Control: no-cache
Origin: http://localhost:3000
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36
Content-Type: application/json
Accept: */*
Referer: http://localhost:3000/login
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9,fr;q=0.8,ja;q=0.7
- Il serait utile si vous avez posté votre Django et le Nœud code.
- Désolé. Ajouté.
- Pas sûr, et ne peut pas obtenir rapidement cette exécuté localement. ARC docs indiquer votre
target
modèle peut être faux. Avez-vous essayé:"/api"
au lieu de"/api/*"
...vous vous demandez si c'est d'essayer de faire correspondre surapi/only-one-more-element
- ne fonctionne pas avec
/api
,/api/
ou/api/*
, ou avec juste"proxy":"http://localhost:8000"
.
Vous devez vous connecter pour publier un commentaire.
Donc, la question a été depuis le Nœud de l'environnement de dev et de l'environnement de dev Django étaient en cours d'exécution dans distinct, des conteneurs docker, donc
localhost
faisait référence au nœud contenant, pas le réseau ponté.Donc, la clé est d'utiliser le conteneur des liens, qui sont automatiquement créés lors de l'utilisation de
docker-compose
, et de l'utiliser comme nom d'hôte. Donc je l'ai changé pourEt qui a travaillé, aussi longtemps que vous le lancement de deux récipients avec le même
docker-compose
de commande, vous devez spécifier manuellement external_links dans votredocker-compose.yml
fichier.Je suis en cours d'exécution dans la même situation que bien. La plupart des résultats de la recherche mentionnent en ajoutant
"secure": false
ou"ignorePath": true
de votre proxy config. Quelque chose comme ceci:Peut être vaut la peine d'essayer, mais malheureusement, rien de tout cela a fonctionné pour moi. Bien que chaque adresse (http://localhost:3000 et http://localhost:8000) de travail complètement bien dans le navigateur, peut-être depuis le conteneur est en fait l'utilisation de proxy, il est nécessaire d'utiliser un menu fixe adresse?
EDIT--
Bien je pense que j'ai tout compris. Je crois qu'il ne avoir à faire avec le conteneur à l'autre de la communication. En regardant dans votre
docker-compose
, votre serveur d'api est appeléedjango
. Changer de forfait.fichier json à ceci:localhost
, ne se réfèrent pas à la même hôte que django.Si votre sur une version plus récente de l'ARC 2.0+ vous aurez besoin de faire cela via un proxy manuel.
https://facebook.github.io/create-react-app/docs/proxying-api-requests-in-development#configuring-the-proxy-manually