用JavaScript封装了一个ajax的get,post两种方法的请求
//
将 get 跟post 封装到一起/* 参数1:url 参数2:数据 参数3:请求的方法 参数4:数据成功获取以后
调用的方法*/function ajax_tool(url,data,method,success) { // 异步对象 var ajax =
new XMLHttpRequest(); // get 跟post 需要分别写不同的代码 if (method=='get') { //
get请求 if (data) { // 如果有值 url+='?'; url+=data; }else{ } // 设置 方法 以及 url
ajax.open(method,url); // send即可 ajax.send(); }else{ // post请求 // post请求
url 是不需要改变 ajax.open(method,url); // 需要设置请求报文
ajax.setRequestHeader("Content-type","application/x-www-form-urlencoded");
// 判断data send发送数据 if (data) { // 如果有值 从send发送 ajax.send(data); }else{
// 木有值 直接发送即可 ajax.send(); } } // 注册事件 ajax.onreadystatechange =
function () { // 在事件中 获取数据 并修改界面显示 if
(ajax.readyState==4&&ajax.status==200) { //
console.log(ajax.responseText); // 将 数据 让 外面可以使用 // return
ajax.responseText; // 当 onreadystatechange 调用时 说明 数据回来了 //
ajax.responseText; // 如果说 外面可以传入一个 function 作为参数 success
success(ajax.responseText); } }}
优化
// 将工具函数 进行优化 只接收一个
参数 对象/* url:请求的url data:发送的数据 method:请求的方法 success:请求成功以后
调用的函数*/function ajax_tool_pro(option) { // 异步对象 var ajax = new
XMLHttpRequest(); // get 跟post 需要分别写不同的代码 if (option.method=='get') { //
get请求 if (option.data) { // 如果有值 option.url+='?';
option.url+=option.data; }else{ } // 设置 方法 以及 option.url
ajax.open(option.method,option.url); // send即可 ajax.send(); }else{ //
post请求 // post请求 option.url 是不需要改变 ajax.open(option.method,option.url);
// 需要设置请求报文
ajax.setRequestHeader("Content-type","application/x-www-form-urlencoded");
// 判断option.data send发送数据 if (option.data) { // 如果有值 从send发送
ajax.send(option.data); }else{ // 木有值 直接发送即可 ajax.send(); } } // 注册事件
ajax.onreadystatechange = function () { // 在事件中 获取数据 并修改界面显示 if
(ajax.readyState==4&&ajax.status==200) { //
console.log(ajax.responseText); // 将 数据 让 外面可以使用 // return
ajax.responseText; // 当 onreadystatechange 调用时 说明 数据回来了 //
ajax.responseText; // 如果说 外面可以传入一个 function 作为参数 success
option.success(ajax.responseText); } }}