Correcting teacher:天蓬老师
Correction status:qualified
Teacher's comments:
json是一种语法,用来序列化其他语言创建的数据类型,json支持六种数据类型,对象,数组,数值,字符串,布尔值,null
注意:不支持underfined,因为除了js外,其他语言不支持。
<script>
//replacer是数组,过滤a和b的值
JSON.stringify({a:1,b:2,c:3},["a","b"]);
//replacer是函数
JSON.stringify({a:1,b:2,c:3},(k,v)=>{
//k表示键 v表示值
if(v>2) return k;
})
//space是格式化json 每条数据前###
JSON.stringify({a:1,b:2,c:3},null,"###");
//parse是将json字符串解析为js对象
let obj=JSON.parse(`{"a":1,"b":2,"c":3}`);
JSON.parse(`{"a":1,"b":2,"c":3}`,(k,v)=>{
if(k ==="b"){
console.log(v);
return v;
}
});
</script>
XMLHttpRequest是浏览器对象,不是js对象
异步请求的步骤
配置参数
xhr.open(type,url);
3.处理响应
xhr.onload(…)
=>{…}
4.发送请求
xhr.send(…);
responseType 响应类型
response 响应正文
理解跨域的原理,并写出cors,jonp的源码并做出总结
let data=new FormData();
//添加到data中
data.append("name",form.email.value);
//通过get获取添加的数据
data.get("name");
简化为直接在send(new FormData(form));
将表单对象放到l里面
send(new FormData(form));
header('Access-Control-Allow-Origin:http://www.baidu.com');
function getUser(data){
let user=data.name+":"+data.email;
document.querySelector("p").innerHTML=user;
}
//getUser({name:"小明","email:tp@php.cn"});
//从前端将这个前端需要调用的函数名称告诉服务器上的php,让php动态生成一个函数调用语句并返回
//从服务器返回函数调用语句`getUser({name:"小明","email:tp@php.cn"})`;
//这就是jsonp的原理
const btn=document.querySelector("button");
btn.onclick=()=>{
//动态生成一个允许跨域请求的html元素
let script=document.creatElement("script");
//将跨域请求的url添加到src中。将函数名传给php
script.src="http:...cors3.php?callback=getUser"
//将script插入到boy