axios请求基本配置使用

axios的基体请求使用
首先在django项目中的settings文件中配置axios跨域请求

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'corsheaders', #首先注册apps添加跨域请求
]
MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'corsheaders.middleware.MiddlewareMixin',  #添加跨域中间件
    'django.middleware.common.CommonMiddleware',
    # 'django.middleware.csrf.CsrfViewMiddleware', #注释掉csrf中间件
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
CORS_ORIGIN_ALLOW_ALL=True #允许全局跨域访问

然后打开vue 首先要导入axios包
在vue终端运行 npm install --save axios 下载axios包进行安装
然后在vue项目中的src文件夹下的main.is中进行配置axios全局使用

import axios from 'axios'//导入axios
axios.defaults.baseURL = 'http://127.0.0.1:8000' //进行跨域的接口
Vue.prototype.$axios = axios  //全局配置axios

配置完成以后打开一个新页面进行axios的提交方式使用

<template>
<div>
  分类:<input type="text" v-model="caveList.name">
  <button @click="postCave">添加分类</button>
</div>
</template>

添加一个盒子,然后设置一个输入页面 绑定数据,通过点击事件绑定一个方法,将数据提交给后端

<script>
export default {
name: "register",data(){
  return{
    caveList:{
      name:''
    }
  }
  },
  methods:{
  postCave(){
    this.$axios.post('cave/',this.caveList)
    .then(resp=>{
      console.log(resp.data)
      alert('添加成功')
    })
  }
  },
  mounted() {
  }
}
</script>

post请求方式

 this.$axios.post('cave/',this.caveList)
 其中this.$axios与后端进行交互,post是请求方式,('cave/',this.caveList)是请求体包含请求地址和数据,也可以通过表单来提交数据
    let form_data=new FormData()
    form_data.append('name',this.cavelist.name)
 

提交完成,成功则打印提交结果并弹框提醒提交成功

get请求方式

 this.$axios.get('cave/'?cave_id=, this.cave_id)  //通过字符串查询请求数据
 this.$axios.get('cave/',{params:{'cave_id':this.cave_id}})  //通过query_params请求数据
### Vite 项目中配置 Axios 请求后端的服务 在基于 Vue3 和 Vite 的前端开发环境中,通过合理配置 Axios 可以高效地完成前后端数据交互的任务。以下是关于如何在 Vite 中配置 Axios 并实现请求后端服务的具体说明。 #### 一、安装依赖 首先,在项目根目录下执行以下命令来安装 `axios`: ```bash npm install axios ``` 如果需要支持环境变量管理,则可以额外安装 `vite-plugin-env-compatible` 或者直接利用 `.env` 文件配合 Vite 自带的功能[^1]。 --- #### 二、创建 Axios 实例并封装基础功能 为了提高代码可维护性和复用性,通常会单独创建一个用于封装 Axios 功能的模块文件(如 `/src/utils/request.js`)。下面是一个简单的实例化和基本配置的例子: ```javascript // src/utils/request.js import axios from 'axios'; const service = axios.create({ baseURL: process.env.VITE_APP_BASE_API || '/', // 设置默认的基础路径 timeout: 5000, // 超时时间设置为5秒 }); // 添加请求拦截器 service.interceptors.request.use( (config) => { console.log('Request Config:', config); return config; }, (error) => Promise.reject(error), ); // 添加响应拦截器 service.interceptors.response.use( (response) => response.data, (error) => { console.error('Response Error:', error.message); return Promise.reject(error); } ); export default service; ``` 上述代码定义了一个全局可用的 Axios 客户端,并设置了统一的基础 URL 地址以及超时时长等参数[^2]。 --- #### 三、API 接口封装 对于实际业务逻辑中的 API 方法调用部分,推荐将其进一步抽象成独立函数形式以便于管理和测试。例如可以在 `/src/api/index.js` 下面这样操作: ```javascript // src/api/index.js import request from '@/utils/request'; export function queryApi(params) { return request.get('/api/common/a/b', { params }); } export function createResource(data) { return request.post('/resource/create', data); } ``` 这里展示了两种常见的 HTTP 方法——GET 和 POST 的简单封装方式。 --- #### 四、挂载到全局原型链上(可选) 为了让组件内部能够更加便捷地访问 `$request` 对象而无需每次都手动引入对应的工具类库文件,可以选择将它绑定至 Vue 应用程序上下文中去。具体做法如下所示: ```javascript // main.js import { createApp } from 'vue'; import App from './App.vue'; import request from './utils/request'; const app = createApp(App); app.config.globalProperties.$request = request; export default app.mount('#app'); ``` 此时任何地方都可以直接通过 this.$request 来发起网络请求了[^3]。 --- #### 五、示例:完整的 GET/POST 请求演示 最后给出一段综合运用以上知识点的小例子供参考学习之用: ```javascript this.$request.get('/example/get') .then(res => alert(`Success! Data received:\n${JSON.stringify(res)}`)) .catch(err => alert(`Error occurred during fetching data.\nDetails:${err}`)); this.$request.post('/example/post', { key: value }) .then(() => alert('Data submitted successfully')) .catch((e) => alert(e)); ``` --- ### 总结 综上所述,我们已经完成了从零搭建一套适用于现代 Web 开发框架下的 RESTful 风格接口调用解决方案的过程描述。该方案不仅考虑到了跨域资源共享(CORS),还兼顾了错误处理机制的设计原则等问题解决策略。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值