// 支持浏览器的源码 function AjaxObject() { var AjaxRequest; // 缓存XHR对象便于 Ajax 使用 try { // Opera 8.0+, Firefox, Safari AjaxRequest = new XMLHttpRequest(); } catch (e) { // Internet Explorer Browsers try { AjaxRequest = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { AjaxRequest = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { // 错误处理 throw new Error("Your browser broke!"); return false; } } } return AjaxRequest; }
测试函数:
function validateUserId() { AjaxFunction(); // 这里的 processRequest() 就是回调函数 AjaxRequest.onreadystatechange = processRequest; if (!target) target = document.getElementById("userid"); var url = "validate?id=" + escape(target.value); alert(unescape(target.value)); //test:解码 AjaxRequest.open("GET", url, true); AjaxRequest.send(null); } function processRequest(req) { if (req.readyState == 4) { if (req.status == 200) { var message = "Hello world"; alert(message); setMessageUsingDOM(message); //... } } }
//引文:http://caibaojian.com/ajax-jsonp.html ajax({ url: "./TestXHR.aspx", //请求地址 type: "POST", //请求方式 data: { name: "super", age: 20 }, //请求参数 dataType: "json", success: function (response, xml) { // 此处放成功后执行的代码 }, fail: function (status) { // 此处放失败后执行的代码 } }); function ajax(options) { options = options || {}; options.type = (options.type || "GET").toUpperCase(); options.dataType = options.dataType || "json"; var params = formatParams(options.data); //创建 - 非IE6 - 第一步 if (window.XMLHttpRequest) { var xhr = new XMLHttpRequest(); } else { //IE6及其以下版本浏览器 var xhr = new ActiveXObject('Microsoft.XMLHTTP'); } //接收 - 第三步 xhr.onreadystatechange = function () { if (xhr.readyState == 4) { var status = xhr.status; if (status >= 200 && status < 300) { options.success && options.success(xhr.responseText, xhr.responseXML); } else { options.fail && options.fail(status); } } } //连接 和 发送 - 第二步 if (options.type == "GET") { xhr.open("GET", options.url + "?" + params, true); xhr.send(null); } else if (options.type == "POST") { xhr.open("POST", options.url, true); //设置表单提交时的内容类型 xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xhr.send(params); } } //格式化参数 function formatParams(data) { var arr = []; for (var name in data) { arr.push(encodeURIComponent(name) + "=" + encodeURIComponent(data[name])); } arr.push(("v=" + Math.random()).replace(".","")); return arr.join("&"); }
function ajax(src,data_,method){ //创建并调用ajax htmlobj = $.ajax({ url : src, asyc : false, type : method, data : data_,//发送到服务器的数据。将自动转换为请求字符串格式。GET 请求中将附加在 URL 后。查看 processData 选项说明以禁止此自动转换。【Eg:{ "id": "value" }, //参数值】 dataType : "json",//预期服务器返回的数据类型。如果不指定,jQuery 将自动根据 HTTP 包 MIME 信息返回 responseXML 或 responseText,并作为回调函数参数传递 contentType:"application/x-www-form-urlencoded", complete : function(data) { try{ // alert("ajax:data:"+data);//test var jsonData = eval("(" + data.responseText + ")"); }catch(error){ $("#ajax_info").css({"padding":"10px","bakcground":"#ccc","color":"red","font-size":"1.6em"}); $("#ajax_info").html(data.responseText); // alert(error.message); $("h3.box-title").css({"background-color":"white","color":"#ccc"});//防止上述文档改变部分的页面样式 return; } // alert(jsonData.msg); if(jsonData.msg=="OK"){//如果数据库中删除成功 //删除tr文本节点 alert(jsonData.msg_cont); }else{ alert(jsonData.msg_cont); } } });//htmlobj----end }