首页 > 其他分享 >vue(六)网络请求

vue(六)网络请求

时间:2023-07-06 20:23:02浏览次数:33  
标签:... Axios 请求 vue querystring 网络 axios import

Axios

Axios是一个基于promise的网络请求库,安装npm install --save axios

  • 局部引入:组件中引入import axios from "axios"

  • 全局引入:main.js中引入,并挂载

// 在main.js中全局引入
import axios from "axios"
// 挂载到全局
const app= createApp(App)
app.config.globalProperties.$axios=axios
app.mount('#app')

Axios在组件中使用

<script>
// 引入querystring库,供post请求使用
import qr from "querystring";

export default {
  name: 'App',
  // 在渲染完成后进行网络请求
  mounted(){
  // get请求
        this.$axios.get("http://xxx/xx?id=1")
        .then(res =>{
            console.log(res.data)
        })
  // Post请求,body需要使用querystring转换成字符串,网络请求不传输对象
        this.$axios.post("http://xxx/xx",
            qr.stringify(
              {"phone":null,"name":null}
            )
        ).then(res =>{
            console.log(res.data)
        })
    }
}
</script>

Axios封装

配置axios的请求拦截和响应拦截

import axios from "axios"
import qr from "querystring"

// 创建实例
const instace = axios.create({timeout:500})

// 请求拦截器
instance.interceptors.request.user(
    config=>{
         ...,
         return config
    },
    error=>{
        ...,
        return xxx
    }
)
// 响应拦截器
instance.interceptors.response.user(
    response=>{
        ...
    },
    error=>{
        ...
    }
)

export default instance;

网络请求跨域

同源策略是浏览器的一项安全策略,浏览器只允许JS代码请求与当前 协议、服务器域名、端口 相同的数据接口上的数据。

JS采取的就是同源策略,所以会有跨域问题。

目前两种跨域解决方案:

  • 后端解决:CROS。添加 header:access-control-allow-origin

  • 前端解决:proxy。在vue.config.js文件中添加配置,添加配置后重启服务才会生效

module.exports = defineConfig({
  devServer:{
      proxy:{
          '/api':{
              target: '协议+ip+端口', // 会出现跨域的协议+ip+端口
              changeOrigin: true
          }
      }
  }
})

 

标签:...,Axios,请求,vue,querystring,网络,axios,import
From: https://www.cnblogs.com/yjh1995/p/17533244.html

相关文章

  • vue(五)CSS样式添加
    Vue具有三种样式化应用程序的方法:外部CSS文件。单文件组件(.vue文件)中的全局样式。单文件组件中组件范围的样式。外部CSS导入外部CSS文件import"./assets/reset.css";单组件全局样式<style>/*全局样式*/.btn{padding:0.8rem1rem0.7rem;......
  • Vue router 路由
    路由跳转页面和路由模式vue的路由路由的文档https://v3.router.vuejs.org/zh/api/路由是干什么的==》就是来负责跳转页面...反正是和页面打交道的vue+router是单页面应用(SPA)解释一下“什么是”单页面:整个项目==》只有一个html文件缺点:不合适做SEO目前来说:后台管理......
  • 第十篇 - Vue接收后台Json数据
    先看下想达到的效果,当用户名密码输错了,就报用户名密码错误。用户名密码成功了,就跳转到登录成功页面上一节已经实现SpringBoot封装Json数据,这次使用VuepostAPI获取Json数据HelloWorld.vue/*eslint-disable*/<template><divclass="login_container"><divclass="......
  • vue 3教程
    创建项目create-vue创建vue3项目推荐,这个库也是官方进行维护的,所以使用起来无烦恼,yyds。执行方式也是比较简单的,我们可以基于vite创建vue3或者vue2的项目npminitvue@3npminitvue@2依次填写和选择下列选项✔Projectname:…vue3-train项目名称✔AddTypeScript?......
  • vue3 安装 3d-force-graph
    1.首先创建vue3的项目2.创建好后通过开发工具打开项目并打开命令行,输入指令npminstall 3d-force-graph安装即可3.在使用的页面中引入 3d-force-graph<!--官网的basic案例--><template><!--ref用于在组件中引用当前的DOM元素。--><divref="container"></div><......
  • vue3 虚拟dom与diff算法
    diff算法vue3diff算法原码地址:  https://github.com/vuejs/core1.diff算法主要是说renderer.ts中patchChildren这段代码逻辑,如下:  2.diff算法排序分为无key时diff算法排序逻辑和有key时diff算法排序逻辑2.1无key时diff算法排序逻辑,分为三步如下,如图1中无key......
  • 2.vue-charts组件
    1.vue-echarts和echarts的区别·vue-echarts是封装后的vue插件,基于EChartsv4.0.1+开发,依赖Vue.jsv2.2.6+,功能一样的只是把它封装成vue插件这样更方便以vue的方式去使用它。·echarts就是普通的js库。 2.vue-echarts特征·轻量,高效,按需绑定事件·支持按需导入E......
  • 2. HTML 进阶之HTTP请求
    1)请求组成请求由三部分组成请求行请求头请求体可以用telnet程序测试2)请求方式与数据格式get请求示例GET/test2?name=%E5%BC%A0&age=20HTTP/1.1Host:localhost%E5%BC%A0是【张】经过URL编码后的结果post请求示例POST/test2HTTP/1.1Host:localho......
  • vue刷新页面时保持当前分页不变(使用本地存储保存页码)
    this.currentPage=1原本的代码是在页面构造时直接传入第一页的页码使得页面去读取第一页应有的数据。 解决思路:设置一个变量,用于保存每一次刷新前的页面页码数,页面构造函数里进行判断如果这个变量为空,那么说明是第一次加载页面,页面读取第一页数据。在需要刷新前将当前页码保......
  • 一套比较完整的字节面试题,包含计算机网络、操作系统、前端等
    一、算法和数据结构 实现一个函数,判断两个给定的字符串是否为异构字符串。异构字符串是指由相同字符但顺序不同的字符串。例如,“abb”和“bab”就是异构字符串。答案:functionisIsomorphic(str1,str2){if(str1.length!==str2.length){returnfalse;}......