Lors de l'exécution d'un backend FastAPI et d'un frontend Next.js sur différentes machines sur le même réseau local, l'accès au backend depuis le frontend peut rencontrer des problèmes.
Pour autoriser l'accès depuis différentes machines, définissez l'indicateur d'hôte sur 0.0.0.0 dans la commande uvicorn :
uvicorn main:app --host 0.0.0.0 --port 8000
Cela permet au backend d'écouter sur toutes les adresses IPv4 du machine locale.
Assurez-vous que le pare-feu autorise l'accès externe à le port spécifié. Créez une règle de pare-feu entrant pour Python, généralement ajoutée automatiquement lorsque Python est autorisé à communiquer via le pare-feu.
Configurez le middleware CORS pour activer les requêtes d'origine croisée :
origins = ['http://localhost:3000','http://192.168.178.23:3000'] app.add_middleware( CORSMiddleware, allow_origins=origins, allow_credentials=True, allow_methods=["*"], allow_headers=["*"], )
Dans les requêtes de récupération JavaScript, utilisez le même nom de domaine que celui saisi dans l'adresse du navigateur barre, ainsi que le numéro de port du backend :
fetch('http://192.168.178.23:8000/people', {...
Lorsque vous testez localement sur la même machine, utilisez fetch avec le nom de domaine correct (par exemple, http://127.0.0.1:8000/people) ou relatif chemins (par exemple, « /people ») lorsque le frontend et le backend s’exécutent sur le même port et la même IP. Si l'origine du frontend diffère de celle du backend, ajoutez-la aux paramètres CORS.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!