[英]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.