Flask实现跨域请求的处理方法


Posted in Python onSeptember 27, 2018

在Flask开发RESTful后端时,前端请求会遇到跨域的问题。下面是解决方法:

使用 flask-cors库可以很容易的解决

pip install flask-cors

两种方法,一个是全局/批量的,一个是单一独立的:

安全起见,一般来说使用独立的方式会常用一些。

1.独立方式

通过给路由添加@cross_origin标识即可

from flask import Flask, jsonify
from flask_cors import cross_origin

@app.route('/upload', methods=['POST', 'OPTIONS'])
@cross_origin()
def upload():
  # todo
  result_text = {"result": "True"}
  return jsonify(result_text)

2.全局方式

也很简单:

from flask import Flask
from flask_cors import CORS

if __name__ == '__main__':
  app.run(host='0.0.0.0', threaded=True, debug=True)
  CORS(app)

这样所有的路由都会支持跨域了。

3.批量方式

还有根据路由正则来批量控制等方式,更加灵活,可以查阅官方文档。

对请求的Response header中加入header

@app.after_request
def af_request(resp): 
"""
#请求钩子,在所有的请求发生后执行,加入headers。
:param resp:
:return:
"""
resp = make_response(resp)
resp.headers['Access-Control-Allow-Origin'] = '*'
resp.headers['Access-Control-Allow-Methods'] = 'GET,POST'
resp.headers['Access-Control-Allow-Headers'] = 'x-requested-with,content-type'
return resp

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
详解Python的Django框架中inclusion_tag的使用
Jul 21 Python
使用Python的Flask框架来搭建第一个Web应用程序
Jun 04 Python
Python实现的多进程和多线程功能示例
May 29 Python
pip命令无法使用的解决方法
Jun 12 Python
Python中矩阵创建和矩阵运算方法
Aug 04 Python
Python批量删除只保留最近几天table的代码实例
Apr 01 Python
python使用 cx_Oracle 模块进行查询操作示例
Nov 28 Python
Python中求对数方法总结
Mar 10 Python
Python如何把Spark数据写入ElasticSearch
Apr 18 Python
Pytorch 使用 nii数据做输入数据的操作
May 26 Python
详解pycharm的python包opencv(cv2)无代码提示问题的解决
Jan 29 Python
python脚本使用阿里云slb对恶意攻击进行封堵的实现
Feb 04 Python
python环形单链表的约瑟夫问题详解
Sep 27 #Python
transform python环境快速配置方法
Sep 27 #Python
python如何求解两数的最大公约数
Sep 27 #Python
Python3中内置类型bytes和str用法及byte和string之间各种编码转换 问题
Sep 27 #Python
python斐波那契数列的计算方法
Sep 27 #Python
python实现汉诺塔算法
Mar 01 #Python
Python3中bytes类型转换为str类型
Sep 27 #Python
You might like
咖啡豆分级制度 咖啡豆等级分类 咖啡豆是按口感分类的吗?
2021/03/05 新手入门
解决控件遮挡问题:关于有窗口元素和无窗口元素
2007/01/28 PHP
学习php设计模式 php实现适配器模式
2015/12/07 PHP
PHP对称加密函数实现数据的加密解密
2016/10/27 PHP
验证用户是否修改过页面的数据的实现方法
2008/09/26 Javascript
js 小贴士一星期合集
2010/04/07 Javascript
js下将金额数字每三位一逗号分隔
2016/02/19 Javascript
node模块机制与异步处理详解
2016/03/13 Javascript
把普通对象转换成json格式的对象的简单实例
2016/07/04 Javascript
微信小程序 wx.request(接口调用方式)详解及实例
2016/11/23 Javascript
javascript动画系列之模拟滚动条
2016/12/13 Javascript
js控制一个按钮是否可点击(可使用)disabled的实例
2017/02/14 Javascript
jquery Easyui Datagrid实现批量操作(编辑,删除,添加)
2017/02/20 Javascript
vue中datepicker的使用教程实例代码详解
2019/07/08 Javascript
Vue项目中数据的深度监听或对象属性的监听实例
2020/07/17 Javascript
深入理解 ES6中的 Reflect用法
2020/07/18 Javascript
Python中处理字符串之islower()方法的使用简介
2015/05/19 Python
在Python操作时间和日期之asctime()方法的使用
2015/05/22 Python
Python使用文件锁实现进程间同步功能【基于fcntl模块】
2017/10/16 Python
Python学习之Anaconda的使用与配置方法
2018/01/04 Python
python3爬虫获取html内容及各属性值的方法
2018/12/17 Python
Python使用Socket实现简单聊天程序
2020/02/28 Python
Python正则表达式学习小例子
2020/03/03 Python
keras 权重保存和权重载入方式
2020/05/21 Python
python图片验证码识别最新模块muggle_ocr的示例代码
2020/07/03 Python
python实现KNN近邻算法
2020/12/30 Python
电话销售经理岗位职责
2013/12/07 职场文书
单位委托书
2014/10/15 职场文书
政风行风整改报告
2014/11/06 职场文书
家属答谢词
2015/01/05 职场文书
《给予树》教学反思
2016/03/03 职场文书
2016年全国爱牙日宣传活动总结
2016/04/05 职场文书
新西兰:最新留学学习计划书写作指南
2019/07/15 职场文书
浅谈移动端中的视口(viewport)的具体使用
2021/04/13 HTML / CSS
MySQL query_cache_type 参数与使用详解
2021/07/01 MySQL
详解Java七大阻塞队列之SynchronousQueue
2021/09/04 Java/Android