最近在做一个前后端分离的项目的时候遇到跨域的问题
vue的请求能发送到后端 却返回错误
后面在网上查阅资料 才解决了这个跨域的问题
django版本2.2.3
要解决这个问题 首先要下载一个django的工具
下载这个工具后 我们去修改django的配置文件
setting.py
首先在INSTALLED_APPS中添加corsheaders
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'web01.apps.Web01Config',
#添加的app
'corsheaders'
]
然后在MIDDLEWARE中添加corsheaders.middleware.CorsMiddleware这个中间件 添加的时候注意位置
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
#跨域添加中间件
'corsheaders.middleware.CorsMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
最后添加一部分跨域的忽略设置
CORS_ALLOW_CREDENTIALS = True
CORS_ORIGIN_ALLOW_ALL = True
CORS_ALLOW_METHODS = (
'DELETE',
'GET',
'OPTIONS',
'PATCH',
'POST',
'PUT',
'VIEW',
)
CORS_ALLOW_HEADERS = (
'XMLHttpRequest',
'X_FILENAME',
'accept-encoding',
'authorization',
'content-type',
'dnt',
'origin',
'user-agent',
'x-csrftoken',
'x-requested-with',
)
然后在修改一下可允许连接的ip:ALLOWED_HOSTS
ALLOWED_HOSTS = ['*'] # *是指任意ip 要是只想允许特定ip访问的话 就把*改成对应的ip
然后让我们来测试一下
ok 数据已经传输过来了