vue前后端分离
axios前后端交互
安装
一定要安装到`项目目录下
cnpm install axios
配置
在main.js中配置
//配置axios import axios from 'axios' Vue.prototype.$axios = axios;
在组件中发送ajax请求
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参数
CORS跨域问题(同源策略)
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
js全局配置
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) })
相关推荐
yuzhu 2020-11-16
85477104 2020-11-17
KANSYOUKYOU 2020-11-16
sjcheck 2020-11-03
怪我瞎 2020-10-28
源码zanqunet 2020-10-28
gloria0 2020-10-26
王军强 2020-10-21
学习web前端 2020-09-28
QiaoranC 2020-09-25
anchongnanzi 2020-09-21
安卓猴 2020-09-12
Macuroon 2020-09-11
kiven 2020-09-11
LittleCoder 2020-09-11
Cheetahcubs 2020-09-13
小焊猪web前端 2020-09-10
颤抖吧腿子 2020-09-04
softwear 2020-08-21