Django 解决django跨域问题(Access to XMLHttpRequest at 'xxxx' from origin 'xxxxx' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.)

· 会写bug的大佬 · 72阅读 · 2022-08-24

详细描述

Django项目中出现的跨域问题解决方案

版本信息

python3.x django4.05

解决方案

第一步,安装第三方扩展:

pip install django-cors-headers

 

第二步,添加应用:

INSTALLED_APPS = (
    ...
    'corsheaders',
    ...
)

 

 第三步,中间件处理,注意放在第一条,第一时间进行处理:

MIDDLEWARE = [
    'corsheaders.middleware.CorsMiddleware',
    ...
]

 

第四步,配置访问规则或白名单:

# 允许所有域名跨域(优先选择)
CORS_ORIGIN_ALLOW_ALL = True

或配置白名单:

CORS_ORIGIN_WHITELIST = (
    '*'
    # '127.0.0.1:8000',
    # 'localhost:8000',
    # '127.0.0.1:8080',
    # 'localhost:8080',
    # 'ads-cms-api.aataotao.com:8000'  #
    # 'taoduoduo-test.oss-cn-shenzhen.aliyuncs.com:80',  # 线上
    # '10.0.2.187:8080'  # 本地
)

 第五步,允许携带cookie:

CORS_ALLOW_CREDENTIALS = True

文章有用

已有 1人 推荐该文章,推荐越多越容易获得的官方扶持

微信扫码分享