【问题标题】:axios frontend request always gets error from a Flask-restful backend, even when the response code is 200axios 前端请求总是从 Flask-restful 后端得到错误,即使响应代码是 200
【发布时间】:2021-03-03 07:10:03
【问题描述】:

我在 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,
}

还有这个 flask-restful 后端类:

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 帖子总是返回到catch((Error))

当从 flask-restful 返回 200 时,我不知道如何让 axiosthen(Response)

编辑

这是我在检查器的network 选项卡中得到的:

【问题讨论】:

  • 从 FE 发出的网络请求是什么样的?您可以在网络选项卡中看到它。在您的问题中看到这一点会有所帮助
  • @topched 我添加了它
  • 响应头中没有 200 OK 所以 axios 认为它​​不好
  • @topched 我知道,我想知道的是如何让flask-restful返回200。我尝试在返回值后添加, 200,但什么也没发生

标签: reactjs axios flask-restful


【解决方案1】:

解决方案是我必须安装和使用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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-20
    • 1970-01-01
    • 2020-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-24
    • 2022-08-19
    相关资源
    最近更新 更多