Vue+Django前后端交互跨域(小白)

Vue+Django前后端开发

当我们从零开始利用Vue和Django开发的时候,就会遇到跨域问题,一般来说Vue本地端口可以是8080或者其它,Django的本地端口一般是8000。
虽然在Vue中我们用axios 向8000端口发送http请求,但还是收到跨域访问的限制
这里分别从前后端说明该如何配置,解决跨域问题

前端Vue配置

1. config/index.js

基于封装好的axios来进行跨域
在前端config/index.js中,设置proxy进行跨域


module.exports = {
    devServer:{
      proxy:{
        '/api':{//表示拦截以/api开头的请求路径
          target:'http://127.0.0.1:8000',
          changOrigin: true,//是否开启跨域
          pathRewrite:{
            '^/api':'' //重写api,把api变成空字符,因为我们真正请求的路径是没有api的
          }
        }
      }
    }
}

2. axios的封装文件

建立一个json文件,对axios.create进行封装的时候,将其baseURL设置为api,如下所示

const http = axios.create({
  baseURL: '/api',
  timeout: 50000
})

后端Django配置

1. 安装django-cors-headers库

在python环境下直接pip install 进行安装

2. 设置setting.py文件

在setting.py中,在INSTALLED_APPS中添加跨域所需的APPcorsheaders,同时在MIDDLEWARE中也添加响应的中间件,并将允许跨域请求的请求方式进行设置,设置为ALL

INSTALLED_APPS = [
    ......
    'corsheaders',
    ......
]

MIDDLEWARE = [
    ......
    'corsheaders.middleware.CorsMiddleware',
    'django.middleware.common.CommonMiddleware',
    ......
]

CORS_ORIGIN_ALLOW_ALL = True
CORS_ALLOW_CREDENTIALS = True

如果前后端都进行了这样的设置之后,应该前后端就能够进行数据的交互了!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值