我需要把Flask 里的数据读入react 系统. react :

const data = {
        name: 'John',
        email: 'john@example.com'
    };

    axios.post('http://127.0.0.1:5000/api/data', data)
        .then(response => {
            console.log(response);
        })
        .catch(error => {
            console.log(error);
        });

Flask :

from flask import Flask, request, jsonify
from flask_cors import CORS

app = Flask(__name__)
CORS(app, origins='http://localhost:3000')

@app.route('/api/data', methods=['POST'])
def process_data():
    data = request.get_json()
    # обработка данных
    response_data = {'message': 'Sucsess'}
    return jsonify(response_data), 200


if __name__ == '__main__':
    app.run(debug=True)


我在浏览器中发现了一个错误:CORS策略阻止了对‘http://127.0.0.1:5000/api/data’From Origin‘http://localhost:3000’处的XMLHttpRequest的访问:对印前判断请求的响应未通过访问控制判断:所请求的资源上不存在‘Access-Control-Allow-Origin’标头. ShortPage.jsx:24 AxiosError:{消息:‘网络错误’,名称:‘AxiosError’,代码:‘ERR_NETWORK’,配置:{…},请求:XMLHttpRequest,…}

我怎么才能解决这个问题呢?

推荐答案

问题是您将路径/api/data限制为http方法POST

@app.route(‘/api/data’,方法=[‘POST’])

CORS要求客户在这条路径上进行OPTIONS次飞行前呼叫,以找出允许哪些始发地(以及标题等其他内容).因为您的代码只允许POST,所以OPTIONS呼叫被拒绝,CORS机制失败.

修复方法是将OPTIONS添加到路由上允许的方法列表中.

@app.route('/api/data', methods=['POST', 'OPTIONS'])

Python相关问答推荐

拆分pandas列并创建包含这些拆分值计数的新列

如何使用entry.bind(FocusIn,self.Method_calling)用于使用网格/列表创建的收件箱

将numpy数组存储在原始二进制文件中

具有多个选项的计数_匹配

用Python解密Java加密文件

OR—Tools CP SAT条件约束

avxspan与pandas period_range

从spaCy的句子中提取日期

如何在Polars中从列表中的所有 struct 中 Select 字段?

cv2.matchTemplate函数匹配失败

Django RawSQL注释字段

调用decorator返回原始函数的输出

Tkinter菜单自发添加额外项目

从Windows Python脚本在WSL上运行Linux应用程序

在pandas/python中计数嵌套类别

Django Table—如果项目是唯一的,则单行

获取PANDA GROUP BY转换中的组的名称

Autocad使用pyautocad/comtypes将对象从一个图形复制到另一个图形

从列表中分离数据的最佳方式

为什么在不先将包作为模块导入的情况下相对导入不起作用