<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<!-- 需要先判断有没有token有token就不提示直接获取数据
没有token就给个提示请先登录获取token不执行下面的内容 -->
<button onclick="login()">登录</button>
<button onclick="getUser()">获取用户数据</button>
<script>
function getUser() {
if (localStorage.token) {
let xhr = new XMLHttpRequest();
let url = 'http://timemeetyou.com:8889/api/private/v1/users?pagenum=1&pagesize=4';
xhr.open('get', url, true);
xhr.setRequestHeader('Authorization', localStorage.token);
xhr.send();
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
let res = JSON.parse(xhr.responseText)
console.log(res);
}
}
}
else {
alert('请先登录获取token')
}
}
// alert出后台返回的结果msg的内容
function login() {
let xhr = new XMLHttpRequest();
let url = 'http://timemeetyou.com:8889/api/private/v1/login';
xhr.open('post', url, true);
let params = {
username: "admin",
password: "123456"
}
/* post需要添加请求头 */
/* 请求回来的内容是json格式 */
/* Content-type 表示请求内容的类型 */
/* application/json 表示请求内容的类型的具体的值 */
xhr.setRequestHeader("Content-type", "application/json")
xhr.send(JSON.stringify(params));
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
let res = JSON.parse(xhr.responseText)
console.log(res);
localStorage.token = res.data.token
/* log 出后台返回的结果 msg的内容 */
// location.href
}
}
}
</script>
</body>
</html>
JS是一种基于对象的语言,和其它面向对象语言不同 引用类型是一种数据结构,将数据和功能组织在一起,常被称为类
/* 基于Object的方式创建对象 */
/* Object 类 */
/* obj 实例化出来的对象 */
// let obj = new Object();
// obj.name = '涛涛';
// obj.age = '30';
// obj.playGame = function (){
// document.write('我nba2k 超级溜');
// }
// document.write(obj.name + '<br>');
// document.write(obj.age + '<br>');
// obj.playGame();
/* 对象字面量 */
/* 对象字面量
对象定义的一种简写形式
简化创建包含大量属性的对象的过程
在为函数传递大量可选参数时,可考虑使用对象字面
基本数据类型 number string boolean null undefined Symbol 引用数据类型 object(Function Array RegExp)
es6 提供一个基本数据类型Symbol Symbol代表了唯一的一个数 不可以new
/* console.log('1'==='1'); *//* =>true */
/* console.log( Symbol('1') == Symbol('1') ); */
/* 用Symbol包裹的数据是唯一的 独一无二的 */
/* console.log( Symbol('1') ); */
/* 首字母开头大写的叫 构造函数 可以new */
// let obj = new Object()
// console.log(obj);
/* let a = new Symbol('username') 不可以new*/
/* 两个人在同时开发一个页面 */
/* 小A定义了对象obj */
// let obj = {
// username:"zhangsan"
// }
// /* 小B 不知道这个obj 有的key叫username
// 把username 重新赋值了 造成了问题*/
// obj.username = 'lisi'
// console.log(obj);
// let obj = {
// [Symbol('username')]: "zhangsan"
// }
// console.log('old',obj);
// obj.username = 'lisi'
// console.log('new',obj);
// [] 如果里面的时候一个变量 可以直接写 o[user1]
// 这里面的user1 就是一个变量
// o['user1'] =>{user1:'zhangsan'}
// let user1 = 'username';
// let o = {}; /* => {username:'zhangsan'} */
// o[user1] = 'zhangsan'