前后端分离过程中,前后端对接测试难免遇到跨域问题。因为是个新司机,所以在我经过一天的测试,才找到解决办法=-=
第一种方法
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
第二种方法
这也是我用的比较简单的方法,引用一个库文件Flask-CORS。http://flask-cors.readthedocs.io/en/latest/具体可以参考官方文档,可以直接用pip安装。
下面是我的引用方法
#!/usr/bin/python
# -*- coding: utf-8 -*-
from flask import Flask, request, make_response, redirect
import json,os,sys
from flask_cors import CORS, cross_origin #导入包
app = Flask(__name__)
app.debug = True
CORS(app, supports_credentials=True)#设置参数
from _base import _index_dict
from _global import *