一、get 和 post 登录

1. get

  1. // 接口 :login.json
  2. // 参数 :user_name 用户名;password 密码
  3. // 返回值:
  4. {
  5. code: 0, // 0表示登录成功
  6. data: {},
  7. msg: 'ok'
  8. }
  9. // 点击登录时把用户名和密码传递给服务器,如果登录成功,alert 提示登录成功,否则 alert 登录失败,并且把服务器返回的内容一并 alert 出来
  10. // 1 绑定点击事件
  11. // 2 再点击事件函数中,获取用户输入的密码和用户名
  12. // 3 把获取的数据传递给接口 (get 请求怎么转? post 请求怎么转)
  13. // 4 根据接口返回的 code 值做出不同的操作
  14. // 1. 用 get 请求
  15. let $ = selector => document.querySelector(selector);
  16. let submit = $('#submit');
  17. let uName = $('#uName');
  18. let pwd = $('#pwd');
  19. submit.onclick = function () {
  20. let nameValue = uName.value; // 获取用户名 input 中输入的内容
  21. let passValue = pwd.value; // 获取密码 input 输入的内容
  22. // 用get请求发送给服务器
  23. let xhr = new XMLHttpRequest();
  24. xhr.open('GET', `login.json?user_name=${nameValue}&password=${passValue}`); // 问号传参时要写 key = value;key 不能瞎写,接口文档中规定了参数的名字 user_name、password,我们传参时 key 必须和接口文档上写的一样,服务端会按照约定的名字去取值,如果你传的参数不叫这个名字,服务端就取不到值;参数的值就是对应页面中用户输入的值;
  25. xhr.onreadystatechange = function () {
  26. if (xhr.readyState === 4 && xhr.status === 200) {
  27. // ajax 请求已经完成,并且服务端正确响应
  28. // 服务器通过响应告知我们登陆的结果如何,根据登陆的结果采取不同操作
  29. let res = JSON.parse(xhr.responseText);
  30. console.log(res);
  31. if (res.code === 0) {
  32. alert('恭喜你已经成功登录');
  33. } else {
  34. alert('很抱歉,登录失败,是由于:' + res.msg);
  35. }
  36. }
  37. };
  38. xhr.send();
  39. };

2. post

  1. // 接口 login.json
  2. // 参数:user_name 用户名 password 密码
  3. // 返回值:
  4. /*
  5. * {
  6. * code: 0, // 0 表示登录成功
  7. * data: {},
  8. * msg: 'ok'
  9. * }
  10. *
  11. *
  12. * */
  13. // 点击登录时把用户名和密码传递给服务器,如果登录成功,alert 提示登录成功,否则 alert 登录失败,并且把服务器返回的内容一并 alert 出来
  14. // 1 绑定点击事件
  15. // 2 在点击事件函数中,获取用户输入的密码和用户名
  16. // 3 把获取的数据传递给接口(get 请求怎么传?post 请求怎么传)
  17. // 4 根据接口返回的 code 值作出不同的操作:
  18. // 1. 获取元素
  19. let $ = selector => document.querySelector(selector);
  20. let submit = $('#submit');
  21. let uName = $('#uName');
  22. let pwd = $('#pwd');
  23. // 2. 用 post 请求
  24. submit.onclick = function () {
  25. let nameValue = uName.value;
  26. let passValue = pwd.value;
  27. let xhr = new XMLHttpRequest();
  28. xhr.open('POST','login.json');
  29. xhr.onreadystatechange = function () {
  30. if (xhr.readyState === 4 && xhr.status === 200) {
  31. let res = JSON.parse(xhr.responseText);
  32. if (res.code === 0) {
  33. alert('登录成功')
  34. } else {
  35. alert('登录失败' + res.msg);
  36. }
  37. }
  38. };
  39. // 处理 post 请求需要的数据,但是这个数据中的 key 同样不可以瞎写,接口文档上规定的参数名就是我们要传递给服务端的 key;
  40. let data = {
  41. user_name: nameValue,
  42. password: passValue
  43. };
  44. xhr.send(JSON.stringify(data)); // POST 通过 send 方法把数据放到请求体,但是也只能接收字符串形式的,所以需要 JSON.stringify 把对象转成字符串;
  45. };