Ajax和JSON

a标签和form表单在浏览器中发送数据,浏览器会自动发送请求报文,但是页面就会跳转,但是在ajax,要对请求报文进行设置,不跳转页面就能向服务器发送数据。
还有:
form表单要设置name属性,这样浏览器才会把它添加在url的后面
但是ajax的get和post不用

firstDay:

1.请求报文和响应报文的组成
在这里插入图片描述

2.浏览器和服务器数据传输的过程
3.XMLHTTPRequest
创建异步对象
设置请求头、请求主体、请求行
回调函数onload,请求成功后响应触发
请求头如果可以省略,但是post有数据要传输的时候,要设置content-Type,而要发送的数据在send以字符串的形式key1=value1&key2=value2的形式
4.设置回调函数,获取返回数据
在这里插入图片描述

5.get带有数据的请求:get请求数据放在open的url里面,post请求数据放在.send里面。
6.验证用户名是否存在
7.post发送数据,需要设置请求头部
在这里插入图片描述
8.聊天机器人

secondDay

1.同步和异步:
同步只需要在open第三个参数设置false
同步:一件一件事情接在做
异步:多件事情同时做
2.onreadystatechange 状态改变数据
判断状态以及请求是否成功
if(xhr.readyState4 && xhr.Status200)
3.如果服务器返回多条数据,最终返回到浏览器都会拼成一条
如果返回的数据不复杂,可以用split,但是不推荐
如果返回的数据复杂,就比较麻烦了。
4. XML数据格式,但是缺点是:
解析XML,操作比较麻烦,因为要像dom元素操作那样,取出标签,取出内容。
而且数据多的话,标签也多,耗费很多内存,虽然现在没有这种情况,因为网速大大提高。
XML的文件格式,文件声明要么写,要么不写,但是写了之后要放在第一行,有一个跟标签,所有的标签都是双标签。
5. 查询天气
6. 明星切换

<?php //告诉浏览器返回的是xml,编码格式是utf-8 header("Content-type: text/xml; charset=utf-8"); //读取xml $xmlString=file_get_contents('../ChangeStar_XML/data.xml'); //返回的是字符串,但是浏览器知道是xml echo $xmlString; ?>

JSON

是一种数据格式,实质上是字符串,基本上编程语言都支持JSON格式。
语言简洁、编程语言都提供了对应转换JSON的方法,转换完基本是数组或者是对象。
用法;
对象:{}、属性名用引号,属性值也是,如果是数字,可以不用。
数组:[]
对象数组
header(“Content-type: application/json; charset=utf-8”); (可以不设置)
在这里插入图片描述

JSON.parse()

在这里插入图片描述
获取网络数据

Ajax封装

更专注于业务逻辑,关注发送请求之前和请求之后,在不同的时机(事件)来操作dom元素.
在这里插入图片描述
在这里插入图片描述

模板引擎

type不填,或者是text/javascript的话,会被解析成js,其他则不会。
在这里插入图片描述
dataType
在这里插入图片描述
在这里插入图片描述

正则表达式

跨域同源

在这里插入图片描述

JSONP

在这里插入图片描述
发送Ajax请求:
用XHR对象或者是Fetch函数

请求报文:

请求行:请求方式 url
请求头:主机 Cookie Content-Type
浏览器告诉后台请求体中携带数据的格式:
Content-Type :

  1. application/x-www-form-urlencoded => (urlencoded格式)username=haha&pwd=123
  2. application/json =>(JSON格式){ “username”:“haha”, “pwd”:123 }
  3. multipart/form-data =>用于文件上传请求
    请求体:post有数据的时候就有 send()

响应报文:

响应状态行:200 404 403 500
在这里插入图片描述

响应头:Content-Type: text/html; charset=utf-8 text/json; charset=utf-8
Set-Cookie; 服务器生成Cookie数据返回交给服务器
响应体:html json css 图片

API分类

  1. restful
    同一地址发送不同请求,服务器操作不一样=>取决于请求方式
    在这里插入图片描述
  2. restless
    后台写死=> 一个路径只对应一个操作
    在这里插入图片描述

一般http请求与ajax请求

  1. 对服务器来说,没有任何区别,区别在浏览器
  2. 浏览器只有XHR和fetch发出的ajax请求
  3. 浏览器让ajax引擎(可以发挥作用的内置代码)发送请求
  4. 一般请求会直接显示响应数据,但是ajax是需要更新dom元素
    写在一个回调函数中,用ajax引擎去调用它

XHR API

在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值