27_ajax.html 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>Document</title>
  7. <style>
  8. #cat img{
  9. width: 300px;
  10. height: 300px;
  11. }
  12. </style>
  13. </head>
  14. <body>
  15. <div id="cat">
  16. </div>
  17. <script>
  18. // ajax 基本原理
  19. // 第一步:创建一个对象实例
  20. let xhr = new XMLHttpRequest();
  21. // 第二步:打开连接
  22. // 第一个参数:请求方法(GET、POST)
  23. // 第二个参数:请求路径(/api/getData)
  24. // 第三个参数:是否异步(true) true 表示异步请求,false 表示同步请求
  25. xhr.open("GET", "https://api.thecatapi.com/v1/images/search");
  26. // 第三步:发送请求
  27. xhr.send();
  28. // 第四步:接收响应
  29. xhr.onreadystatechange = function () {
  30. // onreadystatechange 事件:请求状态改变时触发
  31. // readyState 属性:请求状态码,0-4 之间的整数
  32. // 状态码:0-4
  33. // 0:请求未初始化
  34. // 1:服务器连接已建立
  35. // 2:请求已接收
  36. // 3:请求处理中
  37. // 4:请求已完成
  38. if (xhr.readyState === 4) {
  39. // 请求已完成
  40. // 判断请求是否成功 status
  41. if (xhr.status === 200) {
  42. // 请求成功
  43. // 响应体:服务器返回的数据 responseText
  44. console.log(xhr.responseText);
  45. // 解析响应体
  46. let data = JSON.parse(xhr.responseText);
  47. console.log(data[0].url);
  48. // 渲染到页面
  49. var cat = document.querySelector("#cat");
  50. cat.innerHTML = `<img src="${data[0].url}" alt="">`
  51. }
  52. }
  53. }
  54. </script>
  55. </body>
  56. </html>