gpt4 book ai didi

reactjs - 使用 React 和 Flask API 的尾部斜线的 CORS 奇怪行为

转载 作者:行者123 更新时间:2023-12-02 18:43:07 25 4
gpt4 key购买 nike

我目前正在使用 React 和 Flask API 构建应用程序,我遇到了一些我不理解的 CORS 错误:

我有这样一个端点:

@app.route('/home/', methods=['GET'])
def home():
response = Response(
json.dumps(
get_data()
),
mimetype='application/json'
)
response.headers.add("Access-Control-Allow-Origin", "*")
return response

如果我像这样从 React 调用这个端点,一切正常:

fetch('http://localhost:8080/home/')
.then(res => res.json())
.then((data) => {
setData(data)
})
.catch(console.log)

但是,如果我在我的 Flask API 中将我的路由设置为 '/home'(没有尾部斜杠)并且我使用 fetch('http://localhost:8080/home)' 我收到一个 CORS 错误:从来源 'http://localhost:3000' 访问 'http://localhost:8080/home' 已被 CORS 策略阻止:否请求的资源上存在“Access-Control-Allow-Origin” header 。

虽然这对我的项目来说不是什么大问题,但我想了解这个尾部斜杠的变化......

谢谢,

最佳答案

/home/home/ 是到 flask 的不同路由,但是对于带有尾部斜杠的路由,它会在访问带有尾部斜杠的路由时自动进行重定向.

因此,当您的应用访问 /home 时,flask 会返回到 /home/ 的重定向,但没有 CORS-Header。这会导致您看到的错误。

另见 Flask Documentation

关于reactjs - 使用 React 和 Flask API 的尾部斜线的 CORS 奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67810110/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com