PHP[OOP入门]PH21-ajax

该部分为 php 面向对象的入门部分,较为肤浅且参杂过分已经不是主流的知识。

这是我早期的 php 学习笔记,php 的学习版本版本是 5.6、7,🐟2020/05/06年从有道笔记导出至此。

day21-ajax(灰常重要)

1、应用场景

asynchronous javascript and xml === ajax

注册用户的时候,要写用户名,写了用户名之后,只要你的光标离开这个input框,我就立马知道你这用户名是否被注册过(ajax) 让ajax去和服务器进行交互,交互完毕之后,收到服务器返回的结果,根据结果我再判断页面到底应该显示什么

页面没有刷新

在当前页面中通过ajax和服务器进行交互,达到局部刷新的效果

2、ajax使用

使用起来非常的简单,ajax就是js中的一个对象,通过调用这个对象的方法就完成了和服务器的交互

创建对象

谷歌、火狐、Opera、IE7以上

var xhr = new XMLHttpRequest(); //主流浏览器中创建ajax对象的方式

var xhr = new ActiveXObject("Microsoft.XMLHTTP"); //垃圾浏览器的方式

var xhr = new ActiveXObject("Msxml2.XMLHTTP");

var xhr = new ActiveXObject("Msxml2.XMLHTTP.3.0");

var xhr = new ActiveXObject("Msxml2.XMLHTTP.5.0");

var xhr = new ActiveXObject("Msxml2.XMLHTTP.6.0"); //IE维护的最高版本

get方式

xhr.open('get', '1.php?username=goudan&password=123');

xhr.send();

post方式

xhr.open('post', 'post.php');

xhr.setRequestHeader('content-type', 'application/x-www-form-urlencoded');

xhr.send('username=goudan&password=123');

onreadystatechange :当ajax状态改变的时候触发这个事件

readyState(01234) : ajax的状态

0:初始化

1:执行了open方法

2:执行了send方法

3:得到了部分响应数据

4:得到了全部的响应数据

这里面我们关心的就是4,到4的时候数据就过来了

status:http的状态码 200

responseText:现在都是使用这个

responseXML:这个现在已经不用了

将JSON字符串转化为js对象

//第一种方式

var obj = JSON.parse(xhr.responseText);

//第二种方式

var obj = eval('(' + xhr.responseText + ')');

将js对象转化为JSON格式的字符串

var str = JSON.stringify(obj);

3、ajax函数封装

encodeURIComponent

4、同步和异步

同步:前端在等待请求结果,结果来了之后代码再往下进行

异步:前端不等待请求结果,结果来了直接执行提前写好的回调函数即可

【注】事件绑定的代码我们都要写到open方法的上面。

5、跨域

localhost 127.0.0.1 不是同一个域

localhost www.wokao.com

在php文件中中写如下代码

header('Access-Control-Allow-Origin:*');

(2)jsonp json with padding

6、用户注册