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中利用sorted()函数排序的简单教程
Apr 27 Python
浅析Python的Django框架中的Memcached
Jul 23 Python
Zabbix实现微信报警功能
Oct 09 Python
python3使用PyMysql连接mysql数据库实例
Feb 07 Python
VTK与Python实现机械臂三维模型可视化详解
Dec 13 Python
python获取中文字符串长度的方法
Nov 14 Python
Django继承自带user表并重写的例子
Nov 18 Python
python  ceiling divide 除法向上取整(或小数向上取整)的实例
Dec 27 Python
使用 django orm 写 exists 条件过滤实例
May 20 Python
在pycharm中关掉ipython console/PyDev操作
Jun 09 Python
Python多分支if语句的使用
Sep 03 Python
python装饰器实现对异常代码出现进行自动监控的实现方法
Sep 15 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网站在线人数统计
2008/04/09 PHP
php数组函数序列之array_combine() - 数组合并函数使用说明
2011/10/29 PHP
使用PHP Socket 编程模拟Http post和get请求
2014/11/25 PHP
CodeIgniter使用smtp服务发送html邮件的方法
2015/06/10 PHP
laravel中命名路由的使用方法
2017/02/24 PHP
php json转换相关知识(小结)
2018/12/21 PHP
JS中confirm,alert,prompt函数区别分析
2011/01/17 Javascript
jquery里的正则表达式说明
2011/08/03 Javascript
Prototype的Class.create函数解析
2011/09/22 Javascript
文字溢出实现溢出的部分再放入一个新生成的div中具体代码
2013/05/17 Javascript
JavaScript中instanceof与typeof运算符的用法及区别详细解析
2013/11/19 Javascript
全面解析Bootstrap弹窗的实现方法
2015/12/01 Javascript
浅析Bootstrip的select控件绑定数据的问题
2016/05/10 Javascript
jQuery简单设置文本框回车事件的方法
2016/08/01 Javascript
jQuery实现碰到边缘反弹的动画效果
2018/02/24 jQuery
解决Vue axios post请求,后台获取不到数据的问题方法
2018/08/11 Javascript
详解angular部署到iis出现404解决方案
2018/08/14 Javascript
JavaScript中常用的简洁高级技巧总结
2019/03/10 Javascript
Vue+Spring Boot简单用户登录(附Demo)
2020/11/12 Javascript
[01:02:17]2014 DOTA2华西杯精英邀请赛 5 24 DK VS VG
2014/05/26 DOTA
[05:07]DOTA2英雄梦之声_第14期_暗影恶魔
2014/06/20 DOTA
[02:12]打造更好的电竞完美世界:完美盛典回顾篇
2018/12/19 DOTA
Python 功能和特点(新手必学)
2015/12/30 Python
Python实现的弹球小游戏示例
2017/08/01 Python
python爬虫实战之最简单的网页爬虫教程
2017/08/13 Python
Python 给某个文件名添加时间戳的方法
2018/10/16 Python
python 反编译exe文件为py文件的实例代码
2019/06/27 Python
Python中list的交、并、差集获取方法示例
2019/08/01 Python
numba提升python运行速度的实例方法
2021/01/25 Python
《夸父追日》教学反思
2014/02/26 职场文书
质量标语大全
2014/06/12 职场文书
争先创优个人总结
2015/03/04 职场文书
python numpy中multiply与*及matul 的区别说明
2021/05/26 Python
Python实现视频自动打码的示例代码
2022/04/08 Python
python中filter,map,reduce的作用
2022/06/10 Python
在虚拟机中安装windows server 2008的图文教程
2022/06/28 Servers