Запрос к 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 шт):

Автор решения: Vladislav Moshikov

Для localhost (твоего сервера) сертификат - надежный. Соответственно POST запросы проходят без проблем. Для внешнего устройства (телефон) - это какой-то сервер на котором браузер не увидит надежного сертификат и соответственно это может сломаться. Можете воспользоваться проксированием вашего сервера через надежный https используя ngrok или аналоги.

Нужно больше информации. Я не могу сказать подробней, так как нет логов из консоли браузера и сервера.

Дополните свой вопрос или добавьте комментарий, постараюсь помочь

→ Ссылка