为什么收到CORS错误原因:CORS请求未成功

问题描述

我正在开发一个精巧的应用程序,该应用程序使用FastAPI后端与我的组织而不是我的AWS EC2实例上的PostgreSQL数据库进行交互。

我使用javascript的fetch api将请求发送到后端以查询数据库中的各种内容,在我的本地计算机上,所有这些请求都是在AWS的两端接收的,但是前端甚至无法识别我的请求fastAPI后端。

我对设置这样的服务器没有任何经验,因此我认为在设置这些服务器时存在一些基本错误,这使得它们无法像这样在AWS上进行通信。

fastapi代码如下:

import uvicorn
from fastapi import (Depends,FastAPI,HTTPException,Query,Request)
from fastapi.middleware.cors import CORSMiddleware


app = FastAPI(debug=True)

origins = [
    '*'
]

app.add_middleware(
    CORSMiddleware,allow_origins=origins,allow_credentials=True,allow_methods=["*"],allow_headers=["*"],)


@app.get("/")
async def root():
    return {"message": "Hello World"}

if __name__ == '__main__':
    uvicorn.run(app,host="0.0.0.0",port=8000)

我的提取请求通常如下所示:

const endpoint = public_IP:8000 + `/`;

let objs = [];

fetch(endpoint)
    .then(response => {
        if (!response.ok) {
            throw Error(response.statusText);
        }
        return response.json();
    })

当我发送上述请求时,收到CORS错误,原因是:CORS请求未成功。 FastAPI服务器,没有反馈,请求似乎从未达到,我不确定为什么。据我所知,这通常与HTTP和HTTPS请求之间的问题有关,但是这些问题似乎与我的问题无关,因为我的设置中没有一部分没有使用HTTP。使用chrome时出现错误:无法加载资源:net :: ERR_CONNECTION_REFUSED。

我的EC2实例的AWS安全组允许从任何IP到端口5000和8000的TCP通信。在这两个主机上分别托管了Svelte和FastAPI。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)