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)
}