怎么用django+vue实现跨域
短信预约 -IT技能 免费直播动态提醒
这篇“怎么用django+vue实现跨域”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么用django+vue实现跨域”文章吧。
版本
Django 2.2.3
Python 3.8.8
djangorestframework 3.13.1
django-cors-headers 3.11.0
django实现跨域
说明:此处方法为后端解决跨越,即django端解决跨越。
1. 安装 django-cors-headers
库
pip install django-cors-headers
2. 修改项目配置文件 项目/settings.py
...# Application definitionINSTALLED_APPS = [ 'django.contrib.staticfiles', 'corsheaders', # 添加:跨域组件 'rest_framework', # 添加:DRF框架 'home', # 子应用]MIDDLEWARE = [ 'corsheaders.middleware.CorsMiddleware', # 添加:放首行(放其他行未测试) 'django.middleware.security.SecurityMiddleware', ...# CORS组的配置信息CORS_ORIGIN_WHITELIST = ( 'http://127.0.0.1:8080', # 这里需要注意: 1. 必须添加http://否则报错(https未测试) 2. 此地址就是允许跨域的地址,即前端地址)CORS_ALLOW_CREDENTIALS = True # 允许ajax跨域请求时携带cookie
至此django端配置完毕
3. 前端vue使用axios
访问后端django提供的数据接口,安装axios
npm install axios -S
4. 前端vue配置axios
插件,修改class="lazy" data-src/main.js
...import axios from 'axios'; // 添加: 导入axios包// axios.defaults.withCredentials = true; // 允许ajax发送请求时附带cookieVue.prototype.$axios = axios; // 把对象挂载vue中···
5. 在XX.vue
中跨域请求数据
··· created: function() { // 获取轮播图 this.$axios.get("http://127.0.0.1:8000/book/").then(response => { console.log(response.data) this.banner_list = response.data }).catch(response => { console.log(response) }) // http://127.0.0.1:8000/book/ 这个就是后端django接口···
代码
<template> <div class="div1"> <el-carousel trigger="click" height="600px"> <el-carousel-item v-for="book in book_list" :key="book.index"> <a :href="book.link" rel="external nofollow" > <img width="80%" :class="lazy" data-src="book.image" alt=""> </a> </el-carousel-item> </el-carousel> </div></template><script> export default { name:"Book", data(){ return { book_list:[] }; }, created: function() { // 获取轮播图 this.$axios.get("http://127.0.0.1:8000/book/").then(response => { console.log(response.data) this.book_list = response.data }).catch(response => { console.log(response) }) } }</script><style>.div1 { margin-top: 100px; height: 1000px}img { width: auto; height: auto; max-width: 100%; max-height: 100%;</style>
以上就是关于“怎么用django+vue实现跨域”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网行业资讯频道。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341