1.原生ajax
<p id="name"></p> <script> /* ajax 从服务器上获取数据的一种技术 是异步的 1.创建ajax核心对象 2.与服务器建立连接 3.发送请求 4.响应 */ /* JSON.parse() json格式的字符串转换为json对象 */ var url="https://www.easy-mock.com/mock/5d67436224fd60626abfe906/ajax/base"; var xhr=new XMLHttpRequest(); xhr.open('get',url,true) //true 异步 xhr.send() xhr.onreadystatechange=function(){ /* console.log(xhr.readyState) console.log(xhr.status) */ if(xhr.readyState==4 && xhr.status==200){ var res=JSON.parse(xhr.responseText); console.log(res.data.name) var name=document.getElementById("name") name.innerHTML=res.data.name; } } </script>
2.jquery-ajax
<style> body{ background: pink; } #loading{ position: fixed; left: 0; right: 0; top: 0; bottom: 0; display: flex; justify-content: center; align-items: center; background: #fff1ce; } </style>
<div id="loading"> <img src="images/giphy.gif" alt=""> </div> 加载成功<script> var url="https://www.easy-mock.com/mock/5d67436224fd60626abfe906/ajax/base" /* ajax传参 1.请求的地址 2.请求的方式 get,post */ $.ajax({ url:url, type:"get", dataType:"json", success:function(res){ console.log(res) $("#loading").hide() }, error:function(err){ console.log(err) }, beforeSend:function(){ $("#loading").show() } }) </script>
3.本地封装的Ajax
<script> function http({url,callback,type="get"}){ $.ajax({ url, type, dataType:"json", success:res=>{ callback(res) } }) } var url="http://localhost:8080/" http(url,handleDta); console.log(res) function handleData(res){ for(var key in res){ var p =document.createElement("p"); p.innerHTML=res[key]; document.body.append(p) } } </script>
4.原生的js实现
<script> /* 客户端跨域 1.jsonp跨域 2.script 因为script标签不受同源策略的限制 */ var url="http://douban.uieee.com/v2/movie/top250"; // $.ajax({ // url, // type:"get", // dataType:"jsonp", //更改数据类型 // success:res=>{ // console.log(res) // } // }) var script =document.createElement("script"); script.src=url+"?callback=handleData"; document.body.append(script); function handleData(res){ console.log(res) }
