flask-cors
https://github.com/corydolphin/flask-cors/blob/master/examples/app_based_example.py
""" | |
Flask-Cors example | |
=================== | |
This is a tiny Flask Application demonstrating Flask-Cors, making it simple | |
to add cross origin support to your flask app! | |
:copyright: (C) 2013 by Cory Dolphin. | |
:license: MIT/X11, see LICENSE for more details. | |
""" | |
from flask import Flask, jsonify | |
import logging | |
try: | |
from flask.ext.cors import CORS # The typical way to import flask-cors | |
except ImportError: | |
# Path hack allows examples to be run without installation. | |
import os | |
parentdir = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) | |
os.sys.path.insert(0, parentdir) | |
from flask.ext.cors import CORS | |
app = Flask('FlaskCorsAppBasedExample') | |
logging.basicConfig(level=logging.INFO) | |
# To enable logging for flask-cors, | |
logging.getLogger('flask_cors').level = logging.DEBUG | |
# One of the simplest configurations. Exposes all resources matching /api/* to | |
# CORS and allows the Content-Type header, which is necessary to POST JSON | |
# cross origin. | |
CORS(app, resources=r'/api/*', allow_headers='Content-Type') | |
@app.route("/") | |
def helloWorld(): | |
''' | |
Since the path '/' does not match the regular expression r'/api/*', | |
this route does not have CORS headers set. | |
''' | |
return ''' | |
<html> | |
<h1>Hello CORS!</h1> | |
<h3> End to end editable example with jquery! </h3> | |
<a class="jsbin-embed" href="http://jsbin.com/zazitas/embed?js,console">JS Bin on jsbin.com</a> | |
<script src="//static.jsbin.com/js/embed.min.js?3.35.12"></script> | |
</html> | |
''' | |
@app.route("/api/v1/users/") | |
def list_users(): | |
''' | |
Since the path matches the regular expression r'/api/*', this resource | |
automatically has CORS headers set. The expected result is as follows: | |
$ curl --include -X GET http://127.0.0.1:5000/api/v1/users/ \ | |
--header Origin:www.examplesite.com | |
HTTP/1.0 200 OK | |
Access-Control-Allow-Headers: Content-Type | |
Access-Control-Allow-Origin: * | |
Content-Length: 21 | |
Content-Type: application/json | |
Date: Sat, 09 Aug 2014 00:26:41 GMT | |
Server: Werkzeug/0.9.4 Python/2.7.8 | |
{ | |
"success": true | |
} | |
''' | |
return jsonify(user="joe") | |
@app.route("/api/v1/users/create", methods=['POST']) | |
def create_user(): | |
''' | |
Since the path matches the regular expression r'/api/*', this resource | |
automatically has CORS headers set. | |
Browsers will first make a preflight request to verify that the resource | |
allows cross-origin POSTs with a JSON Content-Type, which can be simulated | |
as: | |
$ curl --include -X OPTIONS http://127.0.0.1:5000/api/v1/users/create \ | |
--header Access-Control-Request-Method:POST \ | |
--header Access-Control-Request-Headers:Content-Type \ | |
--header Origin:www.examplesite.com | |
>> HTTP/1.0 200 OK | |
Content-Type: text/html; charset=utf-8 | |
Allow: POST, OPTIONS | |
Access-Control-Allow-Origin: * | |
Access-Control-Allow-Headers: Content-Type | |
Access-Control-Allow-Methods: DELETE, GET, HEAD, OPTIONS, PATCH, POST, PUT | |
Content-Length: 0 | |
Server: Werkzeug/0.9.6 Python/2.7.9 | |
Date: Sat, 31 Jan 2015 22:25:22 GMT | |
$ curl --include -X POST http://127.0.0.1:5000/api/v1/users/create \ | |
--header Content-Type:application/json \ | |
--header Origin:www.examplesite.com | |
>> HTTP/1.0 200 OK | |
Content-Type: application/json | |
Content-Length: 21 | |
Access-Control-Allow-Origin: * | |
Server: Werkzeug/0.9.6 Python/2.7.9 | |
Date: Sat, 31 Jan 2015 22:25:04 GMT | |
{ | |
"success": true | |
} | |
''' | |
return jsonify(success=True) | |
if __name__ == "__main__": | |
app.run(debug=True) |
flask-cors的更多相关文章
- flask跨域问题
在Flask开发RESTful后端时,前端请求会遇到跨域的问题.下面是解决方法: 使用 flask-cors库可以很容易的解决 1 pip install flask-cors 两种方法,一个是全 ...
- 七月小说网 Python + GraphQL (三)
概述 后台数据库几个基本表基本搭建完毕,看了下Github Develop的V4 Api抛弃了RESTful,采用GraphQL,感觉很有意思,一看文档,竟然有Python的开源实现 Graphene ...
- tornado django flask 跨域解决办法(cors)
XMLHttpRequest cannot load http://www.baidu.com. No 'Access-Control-Allow-Origin' header is present ...
- 使用CORS解决flask前端页面跨域问题
from flask import Flask from flask_cors import CORS app = Flask(__name__) CORS(app) @app.route(" ...
- Flask配置Cors跨域
1 跨域的理解 跨域是指:浏览器A从服务器B获取的静态资源,包括Html.Css.Js,然后在Js中通过Ajax访问C服务器的静态资源或请求.即:浏览器A从B服务器拿的资源,资源中想访问服务器C的资源 ...
- flask之CORS跨域请求处理
from flask import Flask from flask_cors import CORS#pip install Flask-CORS#跨域请求模块 app = Flask(__name ...
- angularjs flask跨域问题 XMLHttpRequest cannot load. No 'Access-Control-Allow-Origin'
场景,我要来我的server(A)上用api来访问另一个server(B)的问题,如果直接在A上调用B的api,那么就会出现XMLHttpRequest cannot load. No 'Access ...
- 客官,您的 Flask 全家桶请收好
http://www.factj.com/archives/543.html Flask-AppBuilder - Simple and rapid Application buil ...
- flask_login 整合 pyjwt + json 简易flask框架
现在很多框架都实现前后端分离,主要为了适应以下几个目的: 1,前后端的分离,可以使前端开发和后端开发更加分工明确,而不是后端还需要在视图模板中加入很多{% XXXX %}标签 2,是为了适应跨域调用或 ...
- 跨域资源共享 CORS 详解(转)
add by zhj: 公司在一个web产品上,做前后端分离,前后端提供独立的服务,使用不同的域名,通过http进行交互,在 前端,会涉及到跨域访问的问题,前端使用了CORS,后端同时需要做相应修改, ...
随机推荐
- “你没有权限登录JIRA”的解决办法
为了更好的做部门的项目管理,部门老大让运维部署了一个jira系统.这两天让我试用并摸索如何用. jira默认的用户组有 jira-administrators.jira-developers.jira ...
- jsp中运用application实现共享留言板功能
jsp中application的知识点总结: 1.一个Web应用程序启动后,将会自动创建一个application对象,在整个应用程序的运行过程中只有这一个application对象,即所有访问该网站 ...
- 说说设计模式~策略模式(Strategy)
返回目录 策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换.而对于客户端(UI)来说,可以通过IOC再配合工厂模块,实现动态策略的切换,策略模块通常于一个抽象策略对象(in ...
- DOM对象 与 jQuery对象 之间的相互装换
示例代码: //jQuery对象转DOM对象 //因为jQuery对象是一个数组对象,所以转换为DOM对象时要用索引的形式 var $div1 = $("#div1"); //jQ ...
- Excel学习笔记
---恢复内容开始--- -----------随学随记----------- 获取当前日期: 获取当前系统时间,包含年月日时分秒: =NOW() 获取当前系统时间,包含年月日: =TODAY() 只 ...
- Script Task 引用 package variable
Script Task 能够使用C#代码进行编程,许多复杂的逻辑都可以使用C# 脚本来实现,不仅灵活,而且强大. 1,能够传递package variable 给 Script Task ,并且Scr ...
- 深入理解javascript作用域系列第四篇——块作用域
× 目录 [1]let [2]const [3]try 前面的话 尽管函数作用域是最常见的作用域单元,也是现行大多数javascript最普遍的设计方法,但其他类型的作用域单元也是存在的,并且通过使用 ...
- 关于未捕获异常的处理(WPF)
这一篇文章来谈谈对于WPF应用程序开发中的未捕获异常的处理. 首先,我们当然是要求应用程序开发人员,尽可能地在程序可能出现异常的地方都去捕捉异常,使用try-catch的方式.但是总是有一些意外的情况 ...
- Apache错误日志时时查看
做项目的时候,有时候会需要查看一下apache的错误日志,然后就需要很繁琐的打开那个目录下面,看信息,只有当错误的时候我才会去打开那个文件. 但是最近我发现在开发的时候,自己忽略掉了很多错误,虽然不会 ...
- Android悬浮窗口的实现
效果图:(悬浮框可拖动) 在项目开发中有一个需求:弹出悬浮窗后,响应悬浮窗的事件再弹出对话框,但是对话框怎么也不显示.也就是说在弹出悬浮框的同时,不能再弹出对话框,可能的原因: 1.悬浮框的焦点在最前 ...