原生ajax剖析

来源:互联网 发布:mysql导出数据库 编辑:程序博客网 时间:2024/05/16 05:52
// 1. 得到一个ajax的对象var ajax = new XMLHttpRequest();// console.log( typeof ajax);//object//2. 请求一个php文件// open('请求方式', '请求的php文件的路径', true/false)       // 请求方式: get/post      true代表异步, false代表同步,一般使用trueajax.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:*'); 
原创粉丝点击