Запрос к FastAPI с VueJS используя внешнее устройство Android
Пишу фронтенд на vue.js, а бэк на fastapi, всё под https. С компа запросы обрабатываются отлично, но как только делаю запрос с телефон, запрос отклонен политикой CORS.
Вот код, может он чем-то вам поможет:
import uvicorn
from fastapi import FastAPI, Form # импорт всего нужного из fastapi для работы проекта
from fastapi.middleware.cors import CORSMiddleware
from functions.verify import verify
from functions.add_star import add_star
app = FastAPI() # создание проложения из класса
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"]
)
@app.post('/api/verify') # отлов post запроса по /api/verify
def verify_app(star_type: str = Form(), file: str = Form()): # функция работающая с запросом
return verify(star_type, file)
@app.post('/api/add_star') # отлов post запроса по /api/verify
def add_star_app(
star_type: str = Form(),
file: str = Form(),
name: str = Form(),
phrase: str = Form()
): # функция работающая с запросом
return add_star(star_type, file, name, phrase)
if __name__ == '__main__': # пункт запуска проекта
uvicorn.run(app, host='127.0.0.1', port=8000, debug=False, ssl_keyfile='/root/ssl/star.key',
ssl_certfile='/root/ssl/star.pem') # запуск проекта в uvicorn
Ответы (1 шт):
Для localhost (твоего сервера) сертификат - надежный. Соответственно POST запросы проходят без проблем. Для внешнего устройства (телефон) - это какой-то сервер на котором браузер не увидит надежного сертификат и соответственно это может сломаться. Можете воспользоваться проксированием вашего сервера через надежный https используя ngrok или аналоги.
Нужно больше информации. Я не могу сказать подробней, так как нет логов из консоли браузера и сервера.
Дополните свой вопрос или добавьте комментарий, постараюсь помочь