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中的join()函数的用法
Apr 07 Python
快速实现基于Python的微信聊天机器人示例代码
Mar 03 Python
Python2.7编程中SQLite3基本操作方法示例
Aug 09 Python
python 正确保留多位小数的实例
Jul 16 Python
pyqt远程批量执行Linux命令程序的方法
Feb 14 Python
python获取txt文件词向量过程详解
Jul 05 Python
Python八皇后问题解答过程详解
Jul 29 Python
python模拟预测一下新型冠状病毒肺炎的数据
Feb 01 Python
基于python实现操作redis及消息队列
Aug 27 Python
python实现网络五子棋
Apr 11 Python
只用Python就可以制作的简单词云
Jun 07 Python
如何利用python实现Simhash算法
Jun 28 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
虫族 ZERG 概述
2020/03/14 星际争霸
《Re:从零开始的异世界生活》剧情体验,手游新作定名
2020/04/09 日漫
phplock(php进程锁) v1.0 beta1
2009/11/24 PHP
破解图片防盗链的代码(asp/php)测试通过
2010/07/02 PHP
PHP连接Access数据库的方法小结
2013/06/20 PHP
php实现四舍五入的方法小结
2015/03/03 PHP
PHP使用PDO访问oracle数据库的步骤详解
2017/09/29 PHP
判断滚动条到底部的JS代码
2013/11/04 Javascript
javascript的parseFloat()方法精度问题探讨
2013/11/26 Javascript
简单介绍JavaScript的变量和数据类型
2015/06/03 Javascript
第一次接触JS require.js模块化工具
2016/04/17 Javascript
js学习总结_选项卡封装(实例讲解)
2017/07/13 Javascript
Vue 表单控件绑定的实现示例
2017/08/11 Javascript
细说webpack源码之compile流程-入口函数run
2017/12/26 Javascript
微信小程序实现全国机场索引列表
2018/01/31 Javascript
解决vue做详情页跳转的时候使用created方法 数据不会更新问题
2020/07/24 Javascript
微信小程序自定义tabBar的踩坑实践记录
2020/11/06 Javascript
详解ES6 中的Object.assign()的用法实例代码
2021/01/11 Javascript
[02:15]2015国际邀请赛选手档案IG.Ferrari 430
2015/07/30 DOTA
[07:06]2018DOTA2国际邀请赛寻真——卫冕冠军Team Liquid
2018/08/10 DOTA
Python  连接字符串(join %)
2008/09/06 Python
Python操作mongodb数据库进行模糊查询操作示例
2018/06/09 Python
详解python3 + Scrapy爬虫学习之创建项目
2019/04/12 Python
Python实现通过解析域名获取ip地址的方法分析
2019/05/17 Python
python sorted函数原理解析及练习
2020/02/10 Python
Python hashlib模块的使用示例
2020/10/09 Python
Pytorch - TORCH.NN.INIT 参数初始化的操作
2021/02/27 Python
HTML5中新标签和常用标签详解
2014/03/07 HTML / CSS
周鸿祎:教你写创业计划书
2013/12/30 职场文书
金融行业职业生涯规划范文
2014/01/17 职场文书
制作部班长职位说明书
2014/02/26 职场文书
民主评议党员个人总结
2015/02/13 职场文书
Python爬取英雄联盟MSI直播间弹幕并生成词云图
2021/06/01 Python
Redis可视化客户端小结
2021/06/10 Redis
APP界面设计技巧和注意事项
2022/04/29 杂记
最新动漫情报:2022年7月新番定档超过30部, OVERLORD骨王第四季也在其中噢
2022/05/04 日漫