Linkaibin 2019-12-21
一定要安装到`项目目录下
cnpm install axios
在main.js中配置
//配置axios import axios from 'axios' Vue.prototype.$axios = axios;
created(){ //发送axios请求 this.$axios({ url:this.$settings.base_url+'/cars/', method:'get', params:{ } }).then(response => { //请求成功成功之后执行 this.cars = response.data; }).catch(error => { //当网络状态码为4xx,5xx时执行 console.log(error.response) }); },
错误信息都在error.response中
params:{}url拼接参数:任何请求都可以携带
data:{}数据包参数 get请求无法携带data参数
django默认只对同源做响应(同源策略),存在跨域问题.
http协议相同,ip服务器地址相同,app应用端口相同,三个都相同才叫同源.
http,ip,post三个有一个不同,就是跨域.
1)Django按照cors模块: >: pip install django-cors-headers 2)在settings注册模块,配置中间件: INSTALLED_APPS = [ ... 'corsheaders' ] MIDDLEWARE = [ ... 'corsheaders.middleware.CorsMiddleware' ] 3)在settings开启允许跨越: CORS_ORIGIN_ALLOW_ALL = True
assets的js文件下设置settings全局js文件
export default{ base_url:'http://127.0.0.1:8000' }
mian.js中配置全局js
//配置全局js import settings from '@/assets/js/settings' Vue.prototype.$settings = settings;
然后就可以在全局使用
this.$axios({ url:this.$settings.base_url + `/car/${pk}/` }).then(response =>{ this.car = response.data }).catch(error =>{ console.log(error.response) })
background-color: blue;background-color: yellow;<input type="button" value="变蓝" @click="changeColorT