在Django和flask中实现跨域
Django
一、未安装django-cors-headers的需要安装
# 虚拟环境-安装 django-cors-headers 解决跨域问题:
pip3 install django-cors-headers -i https://pypi.tuna.tsinghua.edu.cn/simple
二、dev.py中添加应用
INSTALLED_APPS = (
...
# 添加 django-cors-headers 使其可以进行 cors 跨域
'corsheaders',
...
)
三、dev.py中添加中间件
MIDDLEWARE = [
...
# 添加 django-cors-headers 使其可以进行 cors 跨域,放在最上面注册
'corsheaders.middleware.CorsMiddleware',
]
四、dev.py中添加白名单
# CORS跨域请求白名单设置
CORS_ORIGIN_WHITELIST = (
'http://127.0.0.1:8080',
'http://localhost:8080',
'http://www.XXX.site:8080',
)
CORS_ALLOW_CREDENTIALS = True # 允许携带cookie
五、dev.py中编辑ALLOWED_HOSTS
# 允许所有的
ALLOWED_HOSTS['*']
# 允许指定的
ALLOWED_HOSTS = ['api.XXX.site',
'127.0.0.1',
'localhost',
'www.XXX.site']
flask
1、安装
pip install -U flask-cors
2、配置
1、
from flask import Flask
from flask_cors import CORS
# 注意代码位置
app = Flask(__name__)
CORS(app)
2、
也可以通过装饰器@cross_origin()指定路由可以跨域
@app.route("/")
@cross_origin()
def helloWorld():
return "Hello, cross-origin-world!"
补充:协议(http、https)、主机ip 和 端口port 都相同的两个地址是同源地址,否则是非同源地址