在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 都相同的两个地址是同源地址,否则是非同源地址

posted @ 2021-05-26 00:58  kopok  阅读(93)  评论(0编辑  收藏  举报