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学习笔记:字典的使用示例详解
Jun 13 Python
python re正则表达式模块(Regular Expression)
Jul 16 Python
python自动化测试实例解析
Sep 28 Python
Python和GO语言实现的消息摘要算法示例
Mar 10 Python
详解Python3除法之真除法、截断除法和下取整对比
May 23 Python
Python列表切片常用操作实例解析
Dec 16 Python
Python类中的装饰器在当前类中的声明与调用详解
Apr 15 Python
opencv-python的RGB与BGR互转方式
Jun 02 Python
Python手动或自动协程操作方法解析
Jun 22 Python
python利用蒙版抠图(使用PIL.Image和cv2)输出透明背景图
Aug 04 Python
用python爬虫批量下载pdf的实现
Dec 01 Python
Python用SSH连接到网络设备
Feb 18 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
php防注
2007/01/15 PHP
《PHP编程最快明白》第二讲 数字、浮点、布尔型、字符串和数组
2010/11/01 PHP
不使用php api函数实现数组的交换排序示例
2014/04/13 PHP
Yii的Srbac插件用法详解
2016/07/14 PHP
php禁用cookie后session设置方法分析
2016/10/19 PHP
PHP使Laravel为JSON REST API返回自定义错误的问题
2018/10/16 PHP
实例:用 JavaScript 来操作字符串(一些字符串函数)
2007/02/15 Javascript
js加载之使用DOM方法动态加载Javascript文件
2013/11/08 Javascript
node.js适合游戏后台开发吗?
2014/09/03 Javascript
JQuery操作textarea,input,select,checkbox方法
2015/09/02 Javascript
jQuery插件zTree实现单独选中根节点中第一个节点示例
2017/03/08 Javascript
浅谈vue.js中v-for循环渲染
2017/07/26 Javascript
详解Vuex中mapState的具体用法
2017/09/28 Javascript
简单了解vue.js数组的常用操作
2019/06/17 Javascript
bootstrap-treeview实现多级树形菜单 后台JSON格式如何组织?
2019/07/26 Javascript
JavaScript中while循环的基础使用教程
2020/08/11 Javascript
详解React的回调渲染模式
2020/09/10 Javascript
[01:35]2018完美盛典章节片——共竞
2018/12/17 DOTA
python求pi的方法
2014/10/08 Python
Python下载指定页面上图片的方法
2016/05/12 Python
Python实现的多项式拟合功能示例【基于matplotlib】
2018/05/15 Python
python绘制立方体的方法
2018/07/02 Python
python如何实现视频转代码视频
2019/06/17 Python
Python 模拟生成动态产生验证码图片的方法
2020/02/01 Python
pytorch实现MNIST手写体识别
2020/02/14 Python
python中读入二维csv格式的表格方法详解(以元组/列表形式表示)
2020/04/24 Python
python框架flask入门之路由及简单实现方法
2020/06/07 Python
Python datetime模块使用方法小结
2020/06/18 Python
总结30个CSS3选择器
2017/04/13 HTML / CSS
爸爸的花儿落了教学反思
2014/02/20 职场文书
小王子读书笔记
2015/06/29 职场文书
青年志愿者活动感想
2015/08/07 职场文书
员工安全责任协议书
2016/03/22 职场文书
《鲁班学艺》读后感3篇
2019/11/27 职场文书
Nginx内网单机反向代理的实现
2021/11/07 Servers
gtx1650怎么样 gtx1650显卡相当于什么级别
2022/04/08 数码科技