【发布时间】:2020-10-01 14:58:55
【问题描述】:
我在 localhost:5000 上托管了一个烧瓶端点,我试图从 localhost:3000 上托管的 React 应用程序向它发送请求。端点如下所示:
@app.route('/createUserSession', methods=["POST", "OPTIONS", "GET"])
@cross_origin()
def createUserSession():
response = Response()
response.headers["Access-Control-Allow-Origin"] = "http://localhost:3000"
response.headers["Access-Control-Allow-Methods"] = ["GET", "POST", "OPTIONS"]
response.headers["Access-Control-Allow-Credentials"] = "true"
return response
我使用 axios 从前端调用它,如下所示:
const api = axios.create({
withCredentials: false,
crossorigin: true
});
api.post('http://127.0.0.1:5000/createUserSession', queryString.stringify(params),
{headers: headers})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
我尝试了标头的各种排列,每次都收到 CORS 错误,告诉我来源不被允许或凭据标头设置为 false。除了使用代理之外,还有其他解决方案吗?谢谢!
【问题讨论】:
-
你试过
response.headers['Access-Control-Allow-Origin'] = "*"吗? -
为什么不在 package.json 中设置proxy。我假设服务器和客户端代码都将托管在生产中的同一个域上。在服务器上添加 cors 只会使服务器容易被其他站点滥用。
-
我试过
response.headers['Access-Control-Allow-Origin'] = "*",我还尝试在我的前端的package.json中添加“proxy”:“localhost:5000”。仍然收到 CORS 错误:(
标签: python reactjs flask axios cors