Estoy tratando de crear una aplicación de trazado de datos, cuando solicito datos del javascript al servidor uvicorn usando fastAPI, el navegador arroja un error CORS relacionado con los encabezados. Traté de proporcionar encabezados como se indica a continuación, pero no estoy seguro de cómo autenticarlos en el lado del servidor usando fastAPI.
JavaScript:
var url = 'http://127.0.0.1:8000/data'; $.ajax({ url: url, type:'GET', dataType: 'json', beforeSend: setHeader, // data: data, success: function(response) { chartCircle.updateSeries([ response.q ], console.log(response.q) ) } }); function setHeader(xhr) { xhr.setRequestHeader('securityCode', 'Foo'); xhr.setRequestHeader('passkey', 'Bar'); }Python: API RÁPIDA
from typing import Optional from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware import random app = FastAPI() origins = [*] @app.get("/") def read_root(): return {"Hello": "World"} @app.get("/data") def read_item( q: Optional[str] = None): return { "q": random.uniform(2.5, 10.0) }¿Habilitó y configuró cors en su configuración de FastAPI? Se vería algo como esto:
app = FastAPI() origins = [ "http://localhost:8080", ] app.add_middleware( CORSMiddleware, allow_origins=origins, allow_credentials=True, allow_methods=["*"], allow_headers=["*"], )