文章目录
1.Axios
1.1Ajax简介
Ajax即Asynchronous Javascript And XML(异步JavaScript和XML),使用Ajax技术网页应用能够快速地将增量更新呈现在用户界面上,而不需要重载(刷新)整个页面,这使得程序能够更快地回应用户的操作。
功能和作用: Ajax主要实现前后端交互.提高用户页面与服务器之间交互效率。
特点: 局部刷新,异步访问
1.2Ajax异步原理
组成部分:
- 用户
- Ajax引擎–代理
- 服务器
异步的特点:
- 由Ajax引擎直接访问后端服务器。
- 在回调函数没有执行之前,用户可以执行自己的任务。
1.3前后端交互
1.get请求
package com.jt.controller;
import com.jt.pojo.User;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@CrossOrigin //主要解决跨域问题
@RequestMapping("/axios")
public class AxiosController {
/**
* URL地址: http://localhost:8080/axios/getUserById?id=100
* 参数: id = 100
* 返回值: User对象的JSON 伪造一个User对象
*/
@RequestMapping("/getUserById")
public User getUserById(Integer id){
//根据ID查询数据库
User user = new User();
user.setId(id);
user.setName("好好学习");
user.setAge(1000);
user.setSex("男");
return user;
}
}
/**
* var 关键字 没有作用域的概念!!!!
* let 相当于var 有作用域 更加安全.
* const 定义常量的
* 关于axios数据返回值对象的说明:
* axios为了接收后端服务器数据,利用promise对象
* 封装参数
*/
let url1 = "http://localhost:8080/axios/getUserById?id=100"
axios.get(url1)
.then(function(promise){
console.log(promise.data)
})
2.get请求,对象参数写法
/**
* URL地址: http://localhost:8080/axios/getUserByNA?id=xxx&name=xxxx
* 参数: id=xxx name=xxx
* 返回值: List [user1,user2]
*/
@RequestMapping("/getUserByNA")
public List<User> getUserByNA(User user){
List<User> list = new ArrayList<>();
list.add(user);//简化赋值操作 直接返回
list.add(user);
return list;
}
/**
* 1.get请求 对象传参
* 2.语法说明:
* 关键字: params : 对象信息
*/
let user2 = {name:"tomcat",age:100}
let url2 = "http://localhost:8080/axios/getUserByNA"
axios.get(url2,{params:user2})
.then(function(promise){
console.log(promise.data)
})
3.get请求,restFul风格写法,模板字符串写法
/**
* URL地址: http://localhost:8080/axios/findUserByNS/tomcat/男
* 参数: name/sex
* 返回值: List<User>
*/
@RequestMapping("/findUserByNS/{name}/{sex}") //调用set方法为属性赋值
public List<User> findUserByNS(User user){
List<User> list = new ArrayList<>();
list.add(user);
list.add(user);
return list;
}
/**
* 需求: 利用restFul的风格实现前后端交互.
* URL: http://localhost:8080/axios/findUserByNS/tomcat/男
* 难点:
* 1.tomcat/男直接写死在url地址中. 后期扩展不方便
* 模版字符串写法:ES6引入的新功能
* 语法:
* 1. 使用反引号 ``
* 2. 作用: 1.可以保证字符串的格式
* 2.可以动态获取变量的值
*/
let user3 = {name: "tomcat", sex: "男"}
let url3 = `http://localhost:8080/axios/findUserByNS/${user3.name}/${user3.sex}`
let html = `<div>
<p>AAA</p>
<p>BBB</p>
</div>
`
axios.get(url3)
.then(function(promise){
console.log(promise.data)
})