簡體   English   中英

axios 前端請求總是從 Flask-restful 后端獲取錯誤,即使響應代碼是 200

[英]axios frontend request always gets error from a Flask-restful backend, even when the response code is 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,
}

這個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 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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM