博主信息
博文 37
粉丝 0
评论 0
访问量 44336
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
json和ajax
手机用户1607314868
原创
713人浏览过

json

json是一种语法,用来序列化其他语言创建的数据类型,json支持六种数据类型,对象,数组,数值,字符串,布尔值,null
注意:不支持underfined,因为除了js外,其他语言不支持。

  • stringify()方法是将js对象,序列化为JSON字符串
  • parse() 将JSON字符串解析为对象
    stringify介绍
    stringify(data,replacer,space);
    replacer可以是数组和函数,用来过滤的
    space是用来格式化的
  1. <script>
  2. //replacer是数组,过滤a和b的值
  3. JSON.stringify({a:1,b:2,c:3},["a","b"]);
  4. //replacer是函数
  5. JSON.stringify({a:1,b:2,c:3},(k,v)=>{
  6. //k表示键 v表示值
  7. if(v>2) return k;
  8. })
  9. //space是格式化json 每条数据前###
  10. JSON.stringify({a:1,b:2,c:3},null,"###");
  11. //parse是将json字符串解析为js对象
  12. let obj=JSON.parse(`{"a":1,"b":2,"c":3}`);
  13. JSON.parse(`{"a":1,"b":2,"c":3}`,(k,v)=>{
  14. if(k ==="b"){
  15. console.log(v);
  16. return v;
  17. }
  18. });
  19. </script>

AJAX异步请求

XMLHttpRequest是浏览器对象,不是js对象
异步请求的步骤

  1. 创建XMLHttpRequest
    const xhr=new XMLHttpRequest();
  2. 配置参数
    xhr.open(type,url);
    3.处理响应
    xhr.onload(…)
    =>{…}
    4.发送请求
    xhr.send(…);

    属性

    responseType 响应类型
    response 响应正文

  • get请求的,直接在url配置参数,则send(null)
  • post请求
    使用FormData来创建对象,来添加参数
    1. let data=new FormData();
    2. //添加到data中
    3. data.append("name",form.email.value);
    4. //通过get获取添加的数据
    5. data.get("name");
    6. 简化为直接在send(new FormData(form));
    7. 将表单对象放到l里面
    8. send(new FormData(form));
    理解跨域的原理,并写出cors,jonp的源码并做出总结

    跨域

    cors:跨域资源共享
    同源策略:为请求的安全,浏览器禁止通过脚本发起一个跨域请求
    同源是协议相同。域名/主机名相同,端口相同
    http和https是协议不同。
    跨域需要被访问的页面,请求头自定来源域名
    1. header('Access-Control-Allow-Origin:http://www.baidu.com');

    jsop

    浏览器不允许跨域,则使用jsonp来跨域
    jsonp包含两部分,回调函数,+ json数组
    回调函数:请求接收到响应时回调的函数,可动态设置
    回调参数:作为参数传递时函数的json数据
    jsonp: 巧妙的利用了script标签发起的请求不受跨域限制的特征
    注意:jsonp只能完成get请求
    本质是:在js文本中有一个函数
    ,服务器返回此函数的调用
  1. function getUser(data){
  2. let user=data.name+":"+data.email;
  3. document.querySelector("p").innerHTML=user;
  4. }
  5. //getUser({name:"小明","email:tp@php.cn"});
  6. //从前端将这个前端需要调用的函数名称告诉服务器上的php,让php动态生成一个函数调用语句并返回
  7. //从服务器返回函数调用语句`getUser({name:"小明","email:tp@php.cn"})`;
  8. //这就是jsonp的原理
  9. const btn=document.querySelector("button");
  10. btn.onclick=()=>{
  11. //动态生成一个允许跨域请求的html元素
  12. let script=document.creatElement("script");
  13. //将跨域请求的url添加到src中。将函数名传给php
  14. script.src="http:...cors3.php?callback=getUser"
  15. //将script插入到boy
批改老师:天蓬老师天蓬老师

批改状态:合格

老师批语:
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学