Django跨域问题(CORS错误)


Django跨域问题(CORS错误)

一.出现跨域问题(cors错误)的原因

通常情况下,A网页访问B服务器资源时,不满足以下三个条件其一就是跨域访问

  • 协议不同
  • 端口不同
  • 主机不同

二.Django解决跨域

1.安装django-cors-headers模块

pip3 install django-cors-headers

2.注册AAP

INSTALLED_APPS = [
	...
	'corsheaders'
]

3.添加中间件

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

三.跨域设置

settings.py中配置

1.允许所有来源访问

CORS_ORIGIN_ALLOW_ALL = True

2.允许部分来源访问

CORS_ORIGIN_ALLOW_ALL = False

CORS_ORIGIN_WHITELIST = [
'http://example.com' #允许访问的来源

设置指定来源注意点:

  • 来源必须标明:ip,端口,协议,而且ip,协议,端口一一对应才能获取
  • 当中的127.0.0.1与localhost代表的不是同一个
    • 比如说你选了http://127.0.0.1:1000 你发起请求时http://localhost:1000 数据就没法获得