django中使用cors方案解决ajax跨域
跨域CORS
位置 跨域
前端 www.tian.cn
后端 api.tian.cn
django中跨域
前后端分别处于不同的域名,需要为后端添加跨域访问的支持,否则前端无法使用后端提供的api数据,所以我们使用cosrs来解决后端对跨域访问的支持。
使用django-cors-headers扩展
在Response(headers-{"Access-Control-Allow-Origin:"客户端地址/*})
安装:django-cors-headers
pip3 install django-cors-headers
settings.py中注册
# 添加到app
INSTALLED_APPS = [
'corsheaders',
]
# 中间件注册
MIDDLEWARE = [
'corsheaders.middleware.CorsMiddleware',
]
#CORS组跨域的白名单配置
CORS_ORIGIN_WHITELIST = (
# 在部分的cors_headrs模块中,如果不带协议,会导致客户端无法跨域,就需要配置 "http://www.luffycity.cn:8080"
'http://www.tian.cn:8080',
)
# 允许ajax跨域请求时携带cookie
CORS_ALLOW_CREDENTIALS = False
前端Vue中安装:axios -S
npm i axios -S
main.js
import axios from "axios"
axios.defaults.withCredentials = false; // false表示阻止ajax附带cookie
Vue.prototype.$axios = axios; // 把对象挂载vue中