// 1. 得到一个ajax的对象
var ajax = new XMLHttpRequest();
// console.log( typeof ajax);//object
//2. 请求一个php文件
// open('请求方式', '请求的php文件的路径', true/false)
// 请求方式: get/post true代表异步, false代表同步,一般使用true
ajax.open('get', './php/2.php', true);
// 3. 执行(发送)
ajax.send();
// 4. 接收到php返回给ajax的数据
ajax.onreadystatechange = function()
{
//onreadystatechange 当状态发生改变时就会触发我们函数
// readyState: 获取到状态值,status : HTTP状态码
// console.log(ajax.readyState);
if( ajax.readyState == 4 && ajax.status == 200 ){
//在函数内部可以接收到php给ajax返回的值
//接收到php返回的值
alert( ajax.responseText );
}
}
ajax.readyState五种状态:
0 :(未初始化)还没有调用send()方法
1 :(载入)已调用send()方法,正在发送请求
2 :(载入完成)send()方法执行完成,已经接收到全部响应内容
3 :(交互)正在解析响应内容
4 :(完成)响应内容解析完成,可以在客户端调用了
post方式需要设置编码
ajax.setRequestHeader("Content-type","application/x-www-form-urlencoded");
// 参数写在send()方法里
ajax.send('id=1&name=jack');
解决ajax跨越:在请求的文件头部设置header
// 指定域名
header('Access-Control-Allow-Origin:http://127.0.0.1');
// 允许所有域名
header('Access-Control-Allow-Origin:*');