解决Flask 跨域请求问题

python flask 跨域访问装饰器实现

现在大多数的web项目都已经是前后端分离;一般纯的api接口需要考虑跨域访问问题 下面是简单的跨域访问装饰器在flask中的实现(其他语言web项目跨域处理方法类似)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
from functools import wraps
from flask import make_response
def allow_cross_domain(fun):
@wraps(fun)
def wrapper_fun(*args, **kwargs):
rst = make_response(fun(*args, **kwargs))
rst.headers['Access-Control-Allow-Origin'] = '*'
rst.headers['Access-Control-Allow-Methods'] = 'PUT,GET,POST,DELETE'
allow_headers = "Referer,Accept,Origin,User-Agent"
rst.headers['Access-Control-Allow-Headers'] = allow_headers
return rst
return wrapper_fun
@app.route('/hosts/')
@allow_cross_domain
def domains():
pass