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自定义类并使用的方法
May 07 Python
详解Python如何获取列表(List)的中位数
Aug 12 Python
Python 登录网站详解及实例
Apr 11 Python
Python判断两个对象相等的原理
Dec 12 Python
使用pandas read_table读取csv文件的方法
Jul 04 Python
python执行CMD指令,并获取返回的方法
Dec 19 Python
用python打印菱形的实操方法和代码
Jun 25 Python
python读写csv文件方法详细总结
Jul 05 Python
Python 70行代码实现简单算式计算器解析
Aug 30 Python
Python使用shutil模块实现文件拷贝
Jul 31 Python
详解numpy1.19.4与python3.9版本冲突解决
Dec 15 Python
python基础入门之普通操作与函数(三)
Jun 13 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
为什么那些咖啡爱好者大多看不上连锁咖啡店?
2021/03/06 咖啡文化
PHP中判断文件存在使用is_file还是file_exists?
2015/04/03 PHP
利用PHPExcel实现Excel文件的写入和读取
2017/04/26 PHP
js 数值项目的格式化函数代码
2010/05/14 Javascript
使用jQuery.Validate进行客户端验证(初级篇) 不使用微软验证控件的理由
2010/06/28 Javascript
jquery实现checkbox 全选/全不选的通用写法
2014/02/22 Javascript
Javascript排序算法之合并排序(归并排序)的2个例子
2014/04/04 Javascript
javascript将异步校验表单改写为同步表单
2015/01/27 Javascript
JavaScript对象属性检查、增加、删除、访问操作实例
2015/07/08 Javascript
AngularJS 文件上传控件 ng-file-upload详解
2017/01/13 Javascript
vue图片加载与显示默认图片实例代码
2017/03/16 Javascript
浅谈JS对html标签的属性的干预以及对CSS样式表属性的干预
2017/06/25 Javascript
微信小程序商品到详情的实现
2017/06/27 Javascript
基于JavaScript+HTML5 实现打地鼠小游戏逻辑流程图文详解(附完整代码)
2017/11/02 Javascript
微信小程序获取用户信息并保存登录状态详解
2019/05/10 Javascript
vue 组件间的通信之子组件向父组件传值的方式
2020/07/29 Javascript
基于element-ui封装表单金额输入框的方法示例
2021/01/06 Javascript
Python中的pprint折腾记
2015/01/21 Python
python使用socket连接远程服务器的方法
2015/04/29 Python
Python使用matplotlib绘制动画的方法
2015/05/20 Python
Python3使用pandas模块读写excel操作示例
2018/07/03 Python
Python如何使用Gitlab API实现批量的合并分支
2019/11/27 Python
python数据分析工具之 matplotlib详解
2020/04/09 Python
Python 实现PS滤镜中的径向模糊特效
2020/12/03 Python
施华洛世奇英国官网:SWAROVSKI英国
2017/03/13 全球购物
世界上最大的在线学习和教学市场:Udemy
2017/11/08 全球购物
判断单链表中是否存在环
2012/07/16 面试题
什么是虚拟内存?虚拟内存有什么优势?
2016/02/09 面试题
中学教师培训制度
2014/01/31 职场文书
财务学生的职业生涯发展
2014/02/11 职场文书
项目经理聘任书
2014/03/29 职场文书
小班下学期评语
2014/05/04 职场文书
党性心得体会
2014/09/03 职场文书
2014年平安夜寄语
2014/12/08 职场文书
国博复兴之路观后感
2015/06/02 职场文书
JavaScript最完整的深浅拷贝实现方式详解
2022/02/28 Javascript