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爬虫之抓取百度贴吧并存储到本地txt文件改进版
Nov 06 Python
Python中将字典转换为列表的方法
Sep 21 Python
python dict 字典 以及 赋值 引用的一些实例(详解)
Jan 20 Python
python+requests+unittest API接口测试实例(详解)
Jun 10 Python
Python生成器以及应用实例解析
Feb 08 Python
详解Python 正则表达式模块
Nov 05 Python
Flask框架重定向,错误显示,Responses响应及Sessions会话操作示例
Aug 01 Python
将Python文件打包成.EXE可执行文件的方法
Aug 11 Python
解决python3插入mysql时内容带有引号的问题
Mar 02 Python
windows python3安装Jupyter Notebooks教程
Apr 13 Python
python使用numpy中的size()函数实例用法详解
Jan 29 Python
python实现对doc、txt、xls等文档的读写操作
Apr 02 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
建立文件交换功能的脚本(二)
2006/10/09 PHP
thinkphp实现数组分页示例
2014/04/13 PHP
PHP实现的简易版图片相似度比较
2015/01/07 PHP
PHP函数实现从一个文本字符串中提取关键字的方法
2015/07/01 PHP
JavaScript随机排序(随即出牌)
2010/09/17 Javascript
jQuery中获取checkbox选中项等操作及注意事项
2013/11/24 Javascript
js调用后台、后台调用前台等方法总结
2014/04/17 Javascript
JavaScript里四舍五入函数round用法实例
2015/04/06 Javascript
jQuery插件slider实现拖动滑块选取价格范围
2015/04/30 Javascript
AngularJS学习笔记之基本指令(init、repeat)
2015/06/16 Javascript
谈谈JavaScript中function多重理解
2015/08/28 Javascript
使用JavaScript脚本无法直接改变Asp.net中Checkbox控件的Enable属性的解决方法
2015/09/16 Javascript
JavaScript函数绑定用法实例分析
2017/11/14 Javascript
快速解决brew安装特定版本flow的问题
2018/05/17 Javascript
微信小程序中data-key属性之数据传输(经验总结)
2020/08/22 Javascript
Vant 中的Toast设置全局的延迟时间操作
2020/11/04 Javascript
ES6学习教程之Promise用法详解
2020/11/22 Javascript
举例详解Python中yield生成器的用法
2015/08/05 Python
Python使用pickle模块实现序列化功能示例
2018/07/13 Python
Python3.7实现中控考勤机自动连接
2018/08/28 Python
Python3安装Pillow与PIL的方法
2019/04/03 Python
用Python画小女孩放风筝的示例
2019/11/23 Python
Python实现清理微信僵尸粉功能示例【基于itchat模块】
2020/05/29 Python
python+openCV对视频进行截取的实现
2020/11/27 Python
简单介绍HTML5中audio标签的使用
2015/09/24 HTML / CSS
美国领先的医疗警报服务:Philips Lifeline
2018/03/12 全球购物
Oakley西班牙官方商店:太阳眼镜和男女运动服
2019/04/26 全球购物
数控加工专业毕业生自荐信
2013/09/27 职场文书
办公室文员工作自我评价
2013/12/01 职场文书
中年人生感言
2014/02/04 职场文书
大学生在校学习的自我评价
2014/02/18 职场文书
项目投资意向书
2014/04/01 职场文书
大学生学期个人总结
2015/02/12 职场文书
2019年感恩励志演讲稿(收藏备用)
2019/09/11 职场文书
创业计划书之家政服务
2019/09/18 职场文书
python利用while求100内的整数和方式
2021/11/07 Python