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 相关文章推荐
在类Unix系统上开始Python3编程入门
Aug 20 Python
Python环境变量设置方法
Aug 28 Python
Python简单获取自身外网IP的方法
Sep 18 Python
Python微信企业号开发之回调模式接收微信端客户端发送消息及被动返回消息示例
Aug 21 Python
python使用turtle绘制分形树
Jun 22 Python
Python基本数据结构之字典类型dict用法分析
Jun 08 Python
python实现简单五子棋游戏
Jun 18 Python
python数值基础知识浅析
Nov 19 Python
关于tensorflow的几种参数初始化方法小结
Jan 04 Python
python中文分词库jieba使用方法详解
Feb 11 Python
python GUI库图形界面开发之PyQt5窗口控件QWidget详细使用方法
Feb 26 Python
通过实例了解python__slots__使用方法
Sep 14 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调用MySQL的存储过程的实现代码
2008/08/12 PHP
php下连接mssql2005的代码
2011/01/17 PHP
PHP实现批量生成App各种尺寸Logo
2015/03/19 PHP
PHP 二维关联数组根据其中一个字段排序(推荐)
2017/04/04 PHP
用PHP去掉文件头的Unicode签名(BOM)方法
2017/06/22 PHP
php删除一个路径下的所有文件夹和文件的方法
2018/02/07 PHP
父窗口获取弹出子窗口文本框的值
2006/06/27 Javascript
JQuery 前台切换网站的样式实现
2009/06/22 Javascript
js闭包实例汇总
2014/11/09 Javascript
js实现类似新浪微博首页内容渐显效果的方法
2015/04/10 Javascript
js实现ctrl+v粘贴上传图片(兼容chrome、firefox、ie11)
2016/03/09 Javascript
JS判断form内所有表单是否为空的简单实例
2016/09/09 Javascript
jQuery progressbar通过Ajax请求实现后台进度实时功能
2016/10/11 Javascript
12306 刷票脚本及稳固刷票脚本(防挂)
2017/01/04 Javascript
详解Web使用webpack构建前端项目
2017/09/23 Javascript
javascript代码优化的8点总结
2018/01/29 Javascript
详解Javascript中new()到底做了些什么?
2018/03/29 Javascript
vue如何获取自定义元素属性参数值的方法
2019/05/14 Javascript
深入浅析nuxt.js基于ssh的vue通用框架
2019/05/21 Javascript
jquery传参及获取方式(两种方式)
2020/02/13 jQuery
js实现简单扫雷
2020/11/27 Javascript
解决vue scoped scss 无效的问题
2020/09/04 Javascript
在vue中实现清除echarts上次保留的数据(亲测有效)
2020/09/09 Javascript
Python通过递归遍历出集合中所有元素的方法
2015/02/25 Python
Python基础中所出现的异常报错总结
2016/11/19 Python
Python 字符串大小写转换的简单实例
2017/01/21 Python
django用户登录和注销的实现方法
2018/07/16 Python
Python之使用adb shell命令启动应用的方法详解
2019/01/07 Python
scrapy-redis的安装部署步骤讲解
2019/02/27 Python
详解python-图像处理(映射变换)
2019/03/22 Python
PyQt5基本控件使用详解:单选按钮、复选框、下拉框
2019/08/05 Python
CSS3线性渐变简单实现以及该属性在浏览器中的不同
2012/12/12 HTML / CSS
Crocs欧洲官网:Crocs Europe
2020/01/14 全球购物
SOA的常见陷阱或者误解是什么
2014/10/05 面试题
辛德勒的名单观后感
2015/06/03 职场文书
2015中学教学工作总结
2015/07/22 职场文书