首页 > 其他分享 >vue请求后端数据和跨域问题

vue请求后端数据和跨域问题

时间:2023-05-16 16:37:06浏览次数:37  
标签:function axios 跨域 request vue import response 请求

最近遇到的一个问题 后端写好的接口,前端怎么获取数据

这是我后端的接口:GET 接口

这是我前端运行的项目地址:

简单使用:

咱门前端使用 颇受好评的 axios 来发起请求

这是它的官网:https://www.axios-http.cn/

不过要在vue中使用它,就需要先安装 打开终端 输入一下命令 

npm install axios

然后在需要使用的 页面 <script> 中标签 引入 axios就行了

import axios from 'axios'

 然后在methods中 创建一个函数:代码如下

a() {
      // const axios = require('axios');  // 官方给出的例子 这段话类似于 import
   
      axios.get('http://localhost:8088/user') // 这里填写后端的地址
        .then(function (response) {
          // 处理成功情况
          console.log(response);
        })
        .catch(function (error) {
          // 处理错误情况
          console.log(error);
        })
        .then(function () {
          // 总是会执行
        });
    }

 require 和 import 具体详情,可以查阅相关资料

 写完之后在 div中写一个 <button> 标签  <button @click="a()">点我 a</button>

打开控制台可以看到,data里面有三条数据

 

看到这里,我们就请求到了后端数据(后端一定要允许跨域请求)

改进

  写完你这里例子之后,又写了几个请求,发现呢,每次都要复制黏贴,还有好多重复性代码,就想到,应该可以把这个axios封装一下

先去网上查找一些封装的案例,发现,,,,看不懂(并不难的鸭子)

  然后自己手动 简单封装一下 axios

  1. 在src 目录下新建一个 utils 目录,然后再建一个 request.js 文件
  2. 在里面写一下代码
    /*引入axios*/
    import axios from 'axios'
    
    const request = axios.create({
        baseURL: 'http://localhost:8088' // 接口服务器地址
      });
      
    //   // 创建实例后修改默认值
    //   instance.defaults.headers.common['Authorization'] = AUTH_TOKEN;
    
    // //前端采用export.default,在写后端代码时用module.export
    export default request
  3. 在src中新建一个 api 目录, 在目录中新建有一个 demo.js   ( 根据接口作用取名字,这里为测试demo )
  4. 写入以下代码
    import request from '../utils/request' // 引入 request 类(模块)
    
    export function getList(params={}) {
        return request({
            methods:'GET',
            url:'/user',
            params,
        })
    }
  5. 在url中,可以直接 用 /  和接口 地址拼接 然后设置methods 方式 ,axios 中默认为 get,getList是一个方法名
  6. 回到vue的页面上,在我们需要的vue中写  import { getList } from "../api/demo" 导入这个方法
  7. 然后再methods中创建一个函数  ,重写这个方法 
    b(){
          getList().then(function(response){
            console.log(response);
          }).catch(function(error){
            console.log(error);
          });
        }
  8. 最后这个方法可以用于点击事件,如果与crated中,就必须是使用回调函数
getList(){
    listUser()
      .then(response =>{ // 回调函数使用箭头函数来使用。(responde)=>{}
        this.tableData = response.data;
      })
    },

  如有问题,后续更新,先记录一下

标签:function,axios,跨域,request,vue,import,response,请求
From: https://www.cnblogs.com/xiaoxiblog/p/17405514.html

相关文章

  • vue8小时带刻度的时间轴,根据当前时间实时定位
    效果图: 需求:1开始时间、结束时间可配置2时差固定8小时3根据当前时间初始化位置4每隔5s刷新位置5超过结束时间停止刷新HTML:<divclass="time-axis"><divclass="startTime">{{start_time}}</div><divclass="endTime">{{end_time}}</div>......
  • 跨域问题如何解决
    跨域问题是由于浏览器的安全策略所导致的。如果在页面中向不同域名或端口号的服务器发送请求,浏览器就会拒绝响应,从而避免恶意网站获取用户的敏感信息。下面是几种解决跨域问题的方法:通过在服务器端设置响应头来解决。服务器端需要设置Access-Control-Allow-Origin响应头,可以设......
  • 创建Vue项目的方式
    一、方式一:1、在目标目录下,执行命令vuecreateproject_name2、注意:project_name需要替换为需要的项目名称,不可以包含中文 上面是版本,vue2、vue3,上下键选择对应的版本,回车即可。启动项目:npmrunserve终止项目:ctrl+c二、方式二 1、命令开启前端项目管理页面v......
  • vue3 页面打印 vue3-print-nb
    页面打印效果图:之前使用vue2用的是vue-print-nb现在项目是vue3组件用的是vue3-print-nb使用方法安装npmivue3-print-nb--save或者yarnaddvue3-print-nb在main.js中引入import{createApp}from"vue";importAppfrom"./App.vue";importprintf......
  • Vue常用指令
    1、v-model:绑定变量,双向绑定v-model.lazy:在事件之后同步进行v-model.number:把用户输入的数据类型转换为数值类型v-model.trim:去掉首尾空格<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible&......
  • Vue跨域详解
    碰到这种问题,其实你的接口已经通了,但是在页面上就是访问不通过。你可以把API请求地址单独拎出来新开个网站打开看请求是否成功,成功,但是你的项目不通。有那么几个可能吧:1、请求头设置错误headers={ 'Content-Type':'application/json'//错误的'......
  • Vue、React和小程序都是流行的前端开发框架/平台
    Vue、React和小程序都是流行的前端开发框架/平台,它们各有优缺点。Vue的优点:简单易学:Vue的语法简单明了,易于理解和学习。渐进式框架:Vue可以逐渐地集成到现有项目中,也可以作为完整的单页应用程序开发。响应式设计:Vue的响应式设计使得数据变化后UI自动更新,方便快捷。高......
  • vue contenteditable处理火狐浏览器复制带标签问题
    this.$refs.materialTxt.addEventListener('paste',function(e){console.log('监听到了')e.stopPropagation()e.preventDefault()lettext='';constevent=(e.originalEvent||e)if(event.c......
  • C# HttpClient发送Get和Post请求
     HttpClient发送Get和Post请求 publicclassHttpHelper{///<summary>///发起POST同步请求//////</summary>///<paramname="url"></param>///<paramname="postData&q......
  • Vue.js(九) 第三方常用插件
    1.Vue.jsdevtools用于开发调试Vue.js的一个必备插件。可以在Chrome中的扩展程序中直接安装,也可以本地文件的方式安装。2.nprogress页面顶部进度条当路由切换事会在浏览器的顶部出现一个蓝色进度条用于表示路由切换的进度,并在又上角有个蓝色loading的动画。一般情况下切换到目标......