您现在的位置是:网站首页> 编程资料编程资料

第一次在Vue中完整使用AJAX请求和axios.js的实战记录_vue.js_

2023-05-24 411人已围观

简介 第一次在Vue中完整使用AJAX请求和axios.js的实战记录_vue.js_

零、AJAX

0.0 npm install express

npm i express # 安装 也可以使用cnpm npm init --yes # 查看是否安装到当前环境中 

0.1 express.js

// express.js const { response } = require('express'); const express = require('express'); const app = new express(); //app.post('/server', (request, response) => { // // 设置响应头 设置允许跨域 // response.setHeader("Access-Control-Allow-Origin", "*"); // // 设置响应体 // response.send("HELLO ZHUBA POST"); // }); app.post('/server', (request, response) => { // 设置响应头 设置允许跨域 重点注意此处 response.setHeader("Access-Control-Allow-Origin", "*"); // 设置响应体 response.send("HELLO ZHUBA"); }); app.listen(8000, () => { console.log("服务已经启动, 8000端口监听中...."); }); // 先运行 

0.2 GET-HTML

// GET-HTML AJAX GET 请求

Test:

image-20221003104710106

0.3 POST-HTML

需要在express.js中为app添加POST方法(和get一致),并重启启动,(正在运行js脚本修改后需要重新启动)

app.post('/server', (request, response) => { // 设置响应头 设置允许跨域 response.setHeader("Access-Control-Allow-Origin", "*"); // 设置响应体 response.send("HELLO ZHUBA POST"); }); 
// POST-HTML AJAX POST 请求

注意此处:

Test:

一、导入模块

1.1方法一、下载axios.js,并放入vue工程plugins目录下

在main.js引入axios

import axios from './plugins/axios

在相应页面中使用

 created() { const _this = this axios.get('http://localhost:8181/book/findAll/0/6').then(function(resp){ console.log(resp); _this.tableData = resp.data.content _this.pageSize = resp.data.size _this.total = resp.data.totalElements }) } 

1.2方法二使用包管理器安装axios

安装

// 注意此时只安装在该工作区 npm install --save axios cpnm install --save axios 

在相应页面声明axios变量

const axios = require('axios');

注意,是在export default外声明全局变量

使用和之前一样在相应页面

1.3方法三直接引入CDN

二、实际应用

2.1以为和风天气API实践:

[和风天气](城市信息查询 - API | 和风天气开发平台 (qweather.com))

2.2数据接口如下:

https://geoapi.qweather.com/v2/city/lookup?location=${city}&key=${key} // city为字符如'北京' // key为控制台key https://devapi.qweather.com/v7/weather/now?location=${data}&key=${key} // 此处data为前面一个得到的地址的id,如'北京'为:101010100 

2.3实现:

// 导入axios const axios = require("axios"); 
// 异步函数 async beforeMount() { } 
async beforeMount() { // 设置好参数此处写死的,可以用Vue传参等 let key = "fe5812813b8449bb8b4b6ec490ff5cf1"; let city = "湘潭"; // 拼接好请求 把其输入浏览器导航有数据即可,结果参考下图 // https://geoapi.qweather.com/v2/city/lookup?location=湘潭&key=fe5812813b8449bb8b4b6ec490ff5cf1 let httpUrl1 = `https://geoapi.qweather.com/v2/city/lookup?location=${city}&key=${key}`; }, 

async beforeMount() { // 设置好参数此处写死的,可以用Vue传参等 let key = "fe5812813b8449bb8b4b6ec490ff5cf1"; let city = "湘潭"; // 拼接好请求 把其输入浏览器导航有数据即可,结果参考下图 // https://geoapi.qweather.com/v2/city/lookup?location=湘潭&key=fe5812813b8449bb8b4b6ec490ff5cf1 let httpUrl1 = `https://geoapi.qweather.com/v2/city/lookup?location=${city}&key=${key}`; // 发起请求注意此处的await, 不加上,只能得到pending: 初始状态,不是成功或失败状态,如下图 let data1 = await axios.get(httpUrl1); // =Promise{} }, 

promise 要用t

-六神源码网