vue+Django前后端分离中跨域的问题

​ 我们通过vue脚手架创建好了一个项目,首先配置Vue请求的基地址:
vue+Django前后端分离中跨域的问题_第1张图片
​ 然后通过访问对应的后台API即可获得相应数据:

vue+Django前后端分离中跨域的问题_第2张图片
​ Django 路由配置:

vue+Django前后端分离中跨域的问题_第3张图片
​ 启动Django服务器,这里要注意的是Django默认的8080与Vue默认服务器的8080端口冲突,因此我们将Django的端口启动在9000.

在这里插入图片描述
​ 然而我们请求成功但是并不能得到后台的数据,这是因为跨域的问题。

django后端允许跨域

​ 这个包是用来解决django跨域的,这是我最推荐的一种做法,简单,很多语言中,如C#,Java都有对应的跨域包可以安装,而且名字带有cors。

​ 通过pip进行安装:

pip3 install django-cors-headers

​ 在安装完成后需要进行一些settings的设置:

INSTALLED_APPS = [
    ...
    'corsheaders',
    ...
 ] 
 
# 添加中间件
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',# 默认
    'django.middleware.common.CommonMiddleware',# 默认
]
 
# 跨域增加忽略
CORS_ALLOW_CREDENTIALS = True
CORS_ORIGIN_ALLOW_ALL = True
CORS_ORIGIN_WHITELIST = (
    '*'
)
CORS_ALLOW_METHODS = (

你可能感兴趣的:(Python,HTML,django,python)