Flask解决跨域的问题示例代码


Posted in Python onFebruary 12, 2018

跨域文件上传的时候,浏览器会自动发起一个 OPTIONS 方法到服务器,现在后台解决前端跨域解决前端跨域请求的问题

客户端发起的这个 OPTIONS 可以说是一个“预请求”,用于探测后续真正需要发起的跨域 POST 请求对于服务器来说是否是安全可接受的,因为跨域提交数据对于服务器来说可能存在很大的安全问题

请求头 Access-Control-Request-Method 用于提醒服务器在接下来的请求中将会使用什么样的方法来发起请求

Access-Control-Allow-Method 和 Access-Control-Allow-Origin 分别告知客户端,服务器允许客户端用于跨域的方法和域名

示例

下载flask_cors 包

pip install flask-cors

使用flask_cors的CORS,代码示例

from flask_cors import *

app = Flask(__name__)
CORS(app, supports_credentials=True)

以下是Flask-CORS 的官方文档链接

http://flask-cors.readthedocs.io/en/latest/

实现

现在我们看看解决问题的实际案例

from flask_cors import CORS
app = Flask(__name__,)
# r'/*' 是通配符,让本服务器所有的URL 都允许跨域请求
CORS(app, resources=r'/*')
# 上传文件
@uploadFiles.route('/upload', methods=['POST'])
def uploadFile():
  result_text = {"statusCode": 200,"message": "文件上传成功"}
  response = make_response(jsonify(result_text))
  response.headers['Access-Control-Allow-Origin'] = '*'
  response.headers['Access-Control-Allow-Methods'] = 'OPTIONS,HEAD,GET,POST'
  response.headers['Access-Control-Allow-Headers'] = 'x-requested-with'
  return response

使用POSTMAN请求

Flask解决跨域的问题示例代码

遇到的问题

由于项目中路由是多级路由,通过主路由跳转到子路由,一开始的时候,允许跨域的配置在上传文件的子路由中进行设置,发现OPTIONS请求响应值中并没有返回预期的头文件,将跨域设置在主路由中设置即可

总结

以上就是本文关于Flask解决跨域的问题示例代码的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

Python 相关文章推荐
Python中关键字is与==的区别简述
Jul 31 Python
python中类的一些方法分析
Sep 25 Python
python 多线程实现检测服务器在线情况
Nov 25 Python
Django卸载之后重新安装的方法
Mar 15 Python
Python内置模块ConfigParser实现配置读写功能的方法
Feb 12 Python
python发送邮件脚本
May 22 Python
python在OpenCV里实现投影变换效果
Aug 30 Python
python 两个数据库postgresql对比
Oct 21 Python
关于ZeroMQ 三种模式python3实现方式
Dec 23 Python
深入了解Python enumerate和zip
Jul 16 Python
详解Python中的编码问题(encoding与decode、str与bytes)
Sep 30 Python
python 多进程和协程配合使用写入数据
Oct 30 Python
tensorflow实现对图片的读取的示例代码
Feb 12 #Python
python中数据爬虫requests库使用方法详解
Feb 11 #Python
python 接口测试response返回数据对比的方法
Feb 11 #Python
使用Python读取大文件的方法
Feb 11 #Python
python脚本作为Windows服务启动代码详解
Feb 11 #Python
分析Python读取文件时的路径问题
Feb 11 #Python
Django中针对基于类的视图添加csrf_exempt实例代码
Feb 11 #Python
You might like
如何在PHP中使用Oracle数据库(5)
2006/10/09 PHP
php学习之function的用法
2012/07/14 PHP
php导出word文档与excel电子表格的简单示例代码
2014/03/08 PHP
Thinkphp+smarty+uploadify实现无刷新上传
2015/07/30 PHP
php查看一个变量的占用内存的实例代码
2020/03/29 PHP
基于jquery的监控数据是否发生改变
2011/04/11 Javascript
Angular中的Promise对象($q介绍)
2015/03/03 Javascript
javascript中innerText和innerHTML属性用法实例分析
2015/05/13 Javascript
分享两款带遮罩的jQuery弹出框
2015/12/30 Javascript
BootStrap实用代码片段之一
2016/03/22 Javascript
vue 2.0组件与v-model详解
2017/03/27 Javascript
小程序图片长按识别功能的实现方法
2018/08/30 Javascript
Vue中 key keep-alive的实现原理
2018/09/18 Javascript
浅谈Vue数据响应
2018/11/05 Javascript
13 个npm 快速开发技巧(推荐)
2019/07/04 Javascript
vscode自定义vue模板的实现
2021/01/27 Vue.js
python实现从web抓取文档的方法
2014/09/26 Python
python分析网页上所有超链接的方法
2015/05/08 Python
在Python中操作文件之read()方法的使用教程
2015/05/24 Python
Python常用内置模块之xml模块(详解)
2017/05/23 Python
Python 高级专用类方法的实例详解
2017/09/11 Python
Django基础知识与基本应用入门教程
2018/07/20 Python
Python3网络爬虫中的requests高级用法详解
2019/06/18 Python
Python中typing模块与类型注解的使用方法
2019/08/05 Python
简单html5代码获取地理位置
2014/03/31 HTML / CSS
Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
2015/01/27 面试题
保洁主管岗位职责
2013/11/20 职场文书
水果连锁超市创业计划书
2014/01/24 职场文书
少先队入队活动方案
2014/02/08 职场文书
企业指导教师评语
2014/04/28 职场文书
计生办班子群众路线教育实践活动个人对照检查材料思想汇报
2014/10/04 职场文书
2014年社区工会工作总结
2014/12/18 职场文书
初中开学典礼新闻稿
2015/07/17 职场文书
家长会感言
2015/08/01 职场文书
AJAX实现省市县三级联动效果
2021/10/16 Javascript
SQL Server一个字符串拆分多行显示或者多行数据合并成一个字符串
2022/05/25 SQL Server