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在linux中输出带颜色的文字的方法
Jun 19 Python
Python实现将目录中TXT合并成一个大TXT文件的方法
Jul 15 Python
实例解析Python的Twisted框架中Deferred对象的用法
May 25 Python
深入解析Python中的上下文管理器
Jun 28 Python
Python yield 使用方法浅析
May 20 Python
python3.5 tkinter实现页面跳转
Jan 30 Python
解决pyinstaller打包exe文件出现命令窗口一闪而过的问题
Oct 31 Python
python面试题小结附答案实例代码
Apr 11 Python
Python反爬虫伪装浏览器进行爬虫
Feb 28 Python
Python实现查找数据库最接近的数据
Jun 08 Python
Python之Matplotlib文字与注释的使用方法
Jun 18 Python
Python 找出英文单词列表(list)中最长单词链
Dec 14 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
Search Engine Friendly的URL设计
2006/10/09 PHP
使用openssl实现rsa非对称加密算法示例
2014/01/24 PHP
php二分查找二种实现示例
2014/03/12 PHP
PHP源码分析之变量的存储过程分解
2014/07/03 PHP
Laravel中使用自己编写类库的3种方法
2015/02/10 PHP
PHP经典面试题集锦
2015/03/19 PHP
php设计模式之工厂模式用法经典实例分析
2019/09/20 PHP
Javascript之文件操作
2007/03/07 Javascript
十个迅速提升JQuery性能让你的JQuery跑得更快
2012/12/10 Javascript
禁止拷贝网页内容的js代码
2014/01/22 Javascript
jQuery is()函数用法3例
2014/05/06 Javascript
JS中多种方式创建对象详解
2016/03/22 Javascript
倾力总结40条常见的移动端Web页面问题解决方案
2016/05/24 Javascript
JavaScript页面实时显示当前时间实例代码
2016/10/23 Javascript
深入浅析Vue不同场景下组件间的数据交流
2017/08/15 Javascript
JavaScript for循环 if判断语句(学习笔记)
2017/10/11 Javascript
angularJS实现动态添加,删除div方法
2018/02/27 Javascript
关于单文件组件.vue的使用
2018/09/20 Javascript
Selenium执行Javascript脚本参数及返回值过程详解
2020/04/01 Javascript
vue绑定数字类型 value为数字的实例
2020/08/31 Javascript
利用JavaScript为句子加标题的3种方法示例
2021/01/05 Javascript
[02:27]DOTA2英雄基础教程 莱恩
2014/01/17 DOTA
Python删除空文件和空文件夹的方法
2015/07/14 Python
Python实现读取文件最后n行的方法
2017/02/23 Python
Python实现钉钉发送报警消息的方法
2019/02/20 Python
在Python中用GDAL实现矢量对栅格的切割实例
2020/03/11 Python
GafasWorld哥伦比亚:网上购买眼镜
2017/11/28 全球购物
美国牛仔品牌:True Religion
2018/11/16 全球购物
采购部部门职责
2013/12/15 职场文书
运动会入场解说词300字
2014/01/25 职场文书
教师节寄语2015
2015/03/23 职场文书
单位实习介绍信
2015/05/05 职场文书
党支部季度考核意见
2015/06/02 职场文书
历史博物馆观后感
2015/06/05 职场文书
辩论赛新闻稿
2015/07/17 职场文书
使用refresh_token实现无感刷新页面
2022/04/26 Javascript