在www.example.com上运行的fastapi(python)中使用axios时出现网络错误http://127.0.0.1:8000

flmtquvp  于 2022-12-04  发布在  iOS
关注(0)|答案(2)|浏览(234)

我尝试将API与我的react原生应用集成,但在发出请求时,总是收到网络错误:

[Unhandled promise rejection: TypeError: Network request failed]
at node_modules\whatwg-fetch\dist\fetch.umd.js:541:17 in setTimeout$argument_0
at node_modules\react-native\Libraries\Core\Timers\JSTimers.js:123:14 in _callTimer
at node_modules\react-native\Libraries\Core\Timers\JSTimers.js:379:16 in callTimers
at node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:414:4 in __callFunction
at node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:113:6 in __guard$argument_0
at node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:365:10 in __guard
at node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:112:4 in callFunctionReturnFlushedQueue
at [native code]:null in callFunctionReturnFlushedQueue

我的axios配置如下:

import axios from "axios";
const baseUrl = 'http://localhost:8000/' 
export const api = axios.create({baseURL: baseUrl});

还尝试使用“http://10.0.2.2:8000/”和“http://127.0.0.1:8000”,但得到相同的错误。
有人能帮我吗?提前谢谢你!!

pnwntuvh

pnwntuvh1#

通过查看您的baseUrl,我猜您正在尝试访问本地托管的API。您需要执行以下步骤:
打开命令提示符,键入以下命令:
ipconfig
并记下IPv4地址。现在,将相同的IPv4地址粘贴到axios文件中作为基本URL。例如:
http://YOUR-IPv4-Address-Here:YOUR-API-PORT
我希望这能解决“网络请求失败”的问题。

o4tp2gmn

o4tp2gmn2#

我和你遇到了同样的问题。这里的问题是你没有为你的前端应用程序设置cors。
你的主服务器文件(我的案例main.py),应该有一个cors设置如下:

origins = ["http://localhost:3000"]
app.add_middleware(
    CORSMiddleware,
    allow_origins=origins,
    allow_credentials=True,
    allow_methods=["*"],
    allow_headers=["*"],
)

在我的例子中,我的前端运行在http://localhost:3000上。
这应该可以解决问题。

相关问题