Django解决浏览器跨域问题

跨域:

协议,域名(IP),端口  三者相同即同源,任一不同即非同源

http://localhost:8080 与 http://127.0.0.1:8080非同域

http与https非同域

端口不一致也非同域

注意:跨域问题只存在于浏览器中

 

跨域的解决方案一般有三种:

1.cors方案

2.服务端代理

3.jsonp方案

 

Cors方案:

安装插件:

pip install django-cors-headers

 

setting中注册插件:

INSTALLED_APPS = [

    'corsheaders', # 跨域支持

]

 

MIDDLEWARE = [
    'corsheaders.middleware.CorsMiddleware',  # 浏览器跨域请求设置Cors,一定要设置在commonMiddleware上方
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
]

 

settings中添加参数设置:

CORS_ALLOW_ALL_ORIGINS = True  允许任意的客户端发送请求访问服务器

CORS_ALLOW_HEADERS = ["*"]    允许任意请求头

 

详细介绍参照: https://blog.csdn.net/zbx2010/article/details/107481686

posted @ 2022-08-04 22:21  EricYJChung  阅读(114)  评论(0)    收藏  举报