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爬虫之打包生成exe文件
Nov 06 Python
python实现在每个独立进程中运行一个函数的方法
Apr 23 Python
使用Python的Flask框架构建大型Web应用程序的结构示例
Jun 04 Python
使用Mixin设计模式进行Python编程的方法讲解
Jun 21 Python
Python内置数据结构与操作符的练习题集锦
Jul 01 Python
Python基于property实现类的特性操作示例
Jun 15 Python
selenium+python自动化测试之环境搭建
Jan 23 Python
PyCharm GUI界面开发和exe文件生成的实现
Mar 04 Python
你应该知道的Python3.6、3.7、3.8新特性小结
May 12 Python
使用Python实现微信拍一拍功能的思路代码
Jul 09 Python
Python破解极验滑动验证码详细步骤
May 21 Python
Python+OpenCV实现图片中的圆形检测
Apr 07 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 flock 文件锁详细介绍
2012/12/29 PHP
php数组去重的函数代码
2013/02/03 PHP
php和js如何通过json互相传递数据相关问题探讨
2013/02/26 PHP
PHP的password_hash()使用实例
2014/03/17 PHP
PHP中使用jQuery+Ajax实现分页查询多功能操作(示例讲解)
2017/09/17 PHP
PHP程序员简单的开展服务治理架构操作详解(三)
2020/05/14 PHP
js onkeypress与onkeydown 事件区别详细说明
2012/12/13 Javascript
js如何判断不同系统的浏览器类型
2013/10/28 Javascript
window.onload和$(function(){})的区别介绍
2013/10/30 Javascript
jquery实现网页的页面平滑滚动效果代码
2015/11/02 Javascript
jQuery模仿京东/天猫商品左侧分类导航菜单效果
2016/06/29 Javascript
JavaScript实现窗口抖动效果
2016/10/19 Javascript
详解Vue自定义过滤器的实现
2017/01/10 Javascript
Bootstrap导航中表单简单实现代码
2017/03/06 Javascript
jQuery中each循环的跳出和结束实例
2017/08/16 jQuery
vue中使用iview自定义验证关键词输入框问题及解决方法
2018/03/26 Javascript
Vue表单demo v-model双向绑定问题
2018/06/29 Javascript
JS中数组与对象的遍历方法实例小结
2018/08/14 Javascript
Vue Element UI + OSS实现上传文件功能
2019/07/31 Javascript
微信小程序点击列表跳转到对应详情页过程解析
2019/09/26 Javascript
利用Tkinter(python3.6)实现一个简单计算器
2017/12/21 Python
详解Python 字符串相似性的几种度量方法
2019/08/29 Python
使用已经得到的keras模型识别自己手写的数字方式
2020/06/29 Python
PyTorch预训练Bert模型的示例
2020/11/17 Python
HTML5新特性之用SVG绘制微信logo
2016/02/03 HTML / CSS
很酷的小工具和电子产品商城:GearBest
2016/11/19 全球购物
美国滑雪板和装备购物网站:Skis.com
2018/12/20 全球购物
法国在线药房:1001Pharmacies
2021/03/07 全球购物
迟到检讨书大全
2014/01/25 职场文书
影子教师研修方案
2014/06/14 职场文书
安全责任书
2015/01/29 职场文书
公司仓管员岗位职责
2015/04/01 职场文书
2015年“我们的节日·重阳节”活动总结
2015/07/29 职场文书
2016清明节森林防火广播稿
2015/12/17 职场文书
分析MySQL优化 index merge 后引起的死锁
2022/04/19 MySQL
Tomcat配置访问日志和线程数
2022/05/06 Servers