ajax
http
- 概念:客户端与服务器超文本无状态传输协议
- 请求方法
- options:测试有哪些方法可以用
- get:获取服务信息
- post:修改与更新,新增服务器信息
- put:新增
- delete:删除
- head:只返回头信息
- trace:回显头信息,用来测试
- connect管道形式连接
- 请求过程
- 建立tcp连接,客户端发送请求头+请求体,服务器响应请求tou+请求体,关闭tcp连接,客户端渲染内容
- 客户端发起http请求tcp连接
- 客户端(浏览器)发送请求信息(状态行 请求头 空行 请求头)
- 服务的响应请求信息(状态行 响应头 空行 响应体)
- 客服关闭tcp网络连接
- 客户端(浏览器)渲染内容
ajax
- 名称 异步的javascript and xml
- 原理
- 通过XMLRequest与服务器交换数据
- 服务数据通过json或者xml格式返回
- 浏览器端通过js+css渲染展示数据
- get/post
- 新建ajax对象
var xhr=new XMLHttpRequest() - 打开连接
xhr.open(“POST”,url,false) - 设置头信息(get省略)
xhr.setRequestHeader(“Content-Type”:application/x-www-form-urlencoded"); - 监听事件
xhr.onreadyStatechange=function(){
if(xhr.ready4&&xhr.status200){}
} - 返回的数据 xhr.responseText
- 发送 xhr.send(“name=mumu&&age=18”)
- 新建ajax对象
jquery中ajax
- $.ajax()
- 第二层
- $.get
- 回调函数
$.get(url,function(data,status,xhr){})
.done()
.fail()
.always()
.then()
.catch()
- 回调函数
- $.post(url,data,function(data,status,xhr))
- $.get
- 第三层
- $.getJSON()
- $.getScript()
- load()
- url组成
- https://www.520mg.com:443/ajax/echo.php?name=mumu&age=18#cate
- https:协议
- www子域名
- 520mg.com域名
- :443端口号
- /ajax/echo.php路径
- ?name=mumu&age=18查询条件
- #cate哈希值
- 浏览器同源策略
- 当浏览器去访问服务器资源(ajax)要求服务器的地址与浏览器同源
- 协议,域名,子域名,端口号要一致
- 跨域
- 绕过浏览器的同源策略,请求到数据
- 跨域方式
- 服务器响应头信息跨域
Access-Control-Origin:* - jsonp跨域
- 服务器代理(开发)
- 服务器响应头信息跨域
- 异步同步 同步会阻塞代码执行
http响应码
- 1xx 请求开始
- 2xx 请求成功
- 200 GET请求成功
- 201 POST请求成功
- 204 只返回请求头
- 3xx 重定向
1. 301永久重定向
2. 303资源
3. 304资源没有修改
4. 307重定向 该向Location里的URI重新发起 - 4xx请求地址错误
1. 404资源地址错误
2. 401没有权限
3. 403禁止访问 - 5xx 服务端错误
1. 500服务端错误
2. 503服务端超载