reactjs - axios 前端请求总是从 Flask-restful 后端得到错误,即使响应代码是 200
问题描述
我在 React 应用程序前端有以下axios帖子:
import axios from "axios";
import { backendServer, getAuthHeader, getErrorMessage } from "./constants";
const connectPath = (host, port, database, user, password) => {
const requestString = backendServer + 'connect/';
const form = {
host: host,
port: port,
database: database,
user: user,
password: password
}
return axios.post(requestString, form, getAuthHeader())
.then((Response) => {
return {
connection: Response.data,
message: null
}
})
.catch((Error) => {
return getErrorMessage(Error);
})
}
export const paths = {
connectPath,
}
这个烧瓶休息的后端类:
class Connect(Resource):
def post(self):
try:
data = json.loads(request.data)
except:
data = request.form
connect(
data['host'],
data['port'],
data['database'],
data['user'],
data['password']
)
return {'data': "ok"}
api.add_resource(Connect, '/connect/')
我可以看到后端正确处理了前端请求:
但是,尽管如此,axios post 总是返回到catch((Error))
.
当从flask-restful返回 200 时,我不知道如何让axios去做。then(Response)
编辑
这是我在network
检查器选项卡中得到的:
解决方案
解决方案是我必须安装和使用flask-cors
:
pip install -U flask-cores
import json
from flask import Flask, request
from flask_restful import Resource, Api
from flask_cors import CORS
from query import execute_query, connect
app = Flask(__name__)
CORS(app) # <<------- here
api = Api(app)
推荐阅读
- laravel - Laravel 雄辩的如何显示来自 2 个表的数据
- python-3.x - 在 Python3 中以特定值拆分日期列表
- javascript - 更改我的回调,承诺异步等待
- javascript - JavaScript AddEventListener - 退格
- java - 我可以在不添加 java.sql.Driver 文件的情况下将符合 jdbc spec3 的驱动程序部署到 JBoss 6 吗?
- android - Chrome DevTools 远程调试不显示连接的移动设备的 chrome 版本
- python - 从一个数据框中获取列名,并将它们作为空列添加到 pandas 的另一个数据框中
- git - GIT-连接由 ip 端口 22 关闭
- c# - 如何在使用 edge js 的节点 js 的 c# 代码片段中使用 ActiveX DLL?
- node.js - 如何在我的 package.json 文件中配置我的 babel/preset-env?