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中contextlib上下文管理模块的用法
Jun 28 Python
分享6个隐藏的python功能
Dec 07 Python
浅谈Python中range和xrange的区别
Dec 20 Python
python查看列的唯一值方法
Jul 17 Python
用Pycharm实现鼠标滚轮控制字体大小的方法
Jan 15 Python
学习python可以干什么
Feb 26 Python
python3中类的继承以及self和super的区别详解
Jun 26 Python
python粘包问题及socket套接字编程详解
Jun 29 Python
python如何实现异步调用函数执行
Jul 08 Python
python某漫画app逆向
Mar 31 Python
python使用pywinauto驱动微信客户端实现公众号爬虫
May 19 Python
Django中session进行权限管理的使用
Jul 09 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
ip签名探针
2006/10/09 PHP
php 从一个数组中随机的取出若干个不同的数实例
2016/12/31 PHP
php抽象方法和普通方法的区别点总结
2019/10/13 PHP
Array.slice()与Array.splice()的返回值类型
2006/10/09 Javascript
Mootools 1.2教程 输入过滤第二部分(字符串)
2009/09/15 Javascript
让textarea自动调整大小的js代码
2011/04/12 Javascript
浅析jquery的js图表组件highcharts
2014/03/06 Javascript
jQuery操作cookie方法实例教程
2014/11/25 Javascript
JavaScript对数字的判断与处理实例分析
2015/02/02 Javascript
jQuery插件slider实现拖动滑块选取价格范围
2015/04/30 Javascript
jQuery原生的动画效果
2015/07/10 Javascript
讲解JavaScript的Backbone.js框架的MVC结构设计理念
2016/02/14 Javascript
基于Vue如何封装分页组件
2016/12/16 Javascript
用jQuery实现圆点图片轮播效果
2017/03/19 Javascript
js获取一组日期中最近连续的天数
2017/05/25 Javascript
JavaScript之Map和Set_动力节点Java学院整理
2017/06/29 Javascript
JavaScript求一组数的最小公倍数和最大公约数常用算法详解【面向对象,回归迭代和循环】
2018/05/07 Javascript
微信小程序实现跑马灯效果完整代码(附效果图)
2018/05/30 Javascript
使用node搭建自动发图文微博机器人的方法
2019/03/22 Javascript
vue列表单项展开收缩功能之this.$refs的详解
2019/05/05 Javascript
js实现随机点名程序
2020/09/17 Javascript
[58:29]DOTA2-DPC中国联赛 正赛 Phoenix vs XG BO3 第一场 1月31日
2021/03/11 DOTA
python构造icmp echo请求和实现网络探测器功能代码分享
2014/01/10 Python
python 时间戳与格式化时间的转化实现代码
2016/03/23 Python
Django中ORM表的创建和增删改查方法示例
2017/11/15 Python
Django 1.10以上版本 url 配置注意事项详解
2019/08/05 Python
Python3 socket即时通讯脚本实现代码实例(threading多线程)
2020/06/01 Python
Python如何把字典写入到CSV文件的方法示例
2020/08/23 Python
python pygame 愤怒的小鸟游戏示例代码
2021/02/25 Python
HTML5实现简单图片上传所遇到的问题及解决办法
2016/01/20 HTML / CSS
优秀的计算机专业求职信范文
2013/12/27 职场文书
经理管理专业自荐信范文
2013/12/31 职场文书
婚礼上证婚人致辞
2015/07/28 职场文书
golang判断key是否在map中的代码
2021/04/24 Golang
Window server 2012 R2 AD域的组策略相关设置
2022/04/28 Servers
win11怎么消除图标小盾牌?win11消除图标小盾牌解决方法
2022/08/05 数码科技