前言
我们在写html页面时,要么使用的是原生的js来进行请求,要么使用jquery的ajax来进行请求,现在我们在学习vue的时候,vue作者建议我们使用axios来进行请求,那么接下来让我们来看看吧
一、axios是什么?
其实简单来说,就是专门用来处理请求和响应的库,你也可以理解为插件。
二、axios与jquery的区别
axios只是针对请求响应这一块,但是jquery不同,请求响应只是它的一部分,jquery还包含了其它的东西,这也导致了jquery太过庞大了
三、安装axios
npm install axios
四、使用axios
- 在vue项目中创建一个工具文件夹,名字为utils
- 在utils文件夹中创建一个axiosUtils.js文件
- 在axiosUtils.js文件中添加一下内容,构建axios基本使用配置
import axios from "axios";
axios.defaults.headers["Content-Type"] = "application/json;charset=utf-8";
const service = axios.create({
baseURL: '/dev',
timeout: 10000
});
export default service;
- 正式使用axios创建请求
- 在根目录创建一个api文件夹
- 在api文件夹中创建一个testApi.js
- 添加以下内容
import request from "@/utils/axiosUtils.js";
export function loginAPI(username, password, code, uuid) {
const data = {
username,
password,
code,
uuid
};
return request({
url: "/login",
method: "post",
data: data
});
}
- 后端接收参数
@PostMapping("/login")
public AjaxResult login(@RequestBody LoginBody loginBody){
String token = loginService.login(loginBody);
AjaxResult ajax = AjaxResult.success();
ajax.put(UserConstants.TOKEN, token);
return ajax;
}
- 路径问题
这个时候,请求就全部搞定了,但是出现了一个新的问题,就是请求的路径是404,因为在第三步的时候,我们不是加了个baseURL,那么我们请求的地址就是/dev/user/getUser,但是我们实际请求的地址应该是localhost:8080/user/getUser,肯定会有朋友说,我们为什么不把baseURL改成localhost:8080,首先前端和后台启动的端口是不一样的,不同端口的地址访问不同端口的地址,会报跨域的问题。那么这个问题应该怎么解决,就需要用到vue-cli的代理,可以前往 解决Vue跨域访问后端API问题 了解详情
总结
以上就是使用axios来请求后端端口,希望大家喜欢
|