Django跨域解决

  • 发布时间: 2025-01-14 14:45:37
  • 作者: zhan
  • 分类标签: Django
  • 阅读数量: 47
  • 评论数量: 0

 问题描述:

  浏览器报错内容: 'Access-Control-Allow-Origin'

                                                     

解决方式一:

  1. 在项目内创建一个CorsMiddleweare.py

      可以是任何路径,这里是和settings配置文件同级

from django.utils.deprecation import MiddlewareMixin

# 跨域处理中间件
class Cors(MiddlewareMixin):
    def process_response(self, request, response):
        response['Access-Control-Allow-Origin'] = '*'
        if request.method == 'OPTIONS':
            response['Access-Control-ALlow-Headers'] = 'Content-Type'
            response['Access-Control-Allow-Methods'] = 'GET,POST,PUT,PATCH,DELETE'
        return response

2. 在settings配置文件中间件加上

MIDDLEWARE = [
    'mysite.CorsMiddleweare.Cors',  # 加上这句 mysite:是文件路径,这里不能错
]

 解决方式二:

1. 安装依赖

# django版本大于4.0直接安装就可以
pip install django-cors-headers

# django版本小于4.0,可以安装3.11版本
pip install django-cors-headers==3.11.0

2. 下面在settings配置添加

ALLOWED_HOSTS = ['*']

INSTALLED_APPS = [
    'corsheaders',  # 注册app
]


MIDDLEWARE = [
    'corsheaders.middleware.CorsMiddleware',  # 加上这句

]

# 允许跨域源
CORS_ORIGIN_ALLOW_ALL = True

# 允许的请求头
CORS_ALLOW_HEADERS = (
    "accept",
    "accept-encoding",
    "authorization",
    "content-type",
    "dnt",
    "origin",
    "user-agent",
    "x-csrftoken",
    "x-requested-with",
    # 额外允许的请求头
    'token'
)

 

上一篇:没有了

下一篇:扩容虚拟内存

提交评论

您尚未登录,登录之后方可评论~ 登录 or 注册

评论列表

暂无评论