• 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)
    })
    
  • 相关阅读:
    Ehcache缓存配置
    spring3使用task:annotation-driven开始定时
    Constructor >> @Autowired >> @PostConstruct
    面试转载
    阿里面试:MYSQL的引擎区别
    Redis的主从复制的原理介绍
    微服务的调用链
    java的零拷贝机制
    存储过程与触发器面试
    ABA问题
  • 原文地址:https://www.cnblogs.com/agsol/p/12078267.html
Copyright © 2020-2023  润新知