javascript实现的ajax主要代码如下:
var xmlHttp = false; function ajaxScore(_ajaxCon){ //ajax处理评分 var callBackResult ; var _assetid = $('resource_id').innerHTML; if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlHttp = new XMLHttpRequest(); } else {// code for IE6, IE5 xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } xmlHttp.setRequestHeader( "Connection", "close"); var url="http://172.30.93.204:8078/gateway/assetScoreServlet?assetid="+_assetid+"&stbId=''&score="+_ajaxCon; //var url = "";//获取播放地址url if (url) { xmlHttp.onreadystatechange = function(){ if (xmlHttp.readyState == 4 ) { if(xmlHttp.status == 200){ if(curTimeoutErrorInfo > 0) clearTimeout(curTimeoutErrorInfo) ; callBackResult = xmlHttp.responseText;//xmlHttp.responseText is callback value //$("film").innerHTML = callBackResult ; if(eval(callBackResult)[0].url == 'ok'){ $("resultError").innerHTML = "评分成功!"; $("error").style.visibility = "visible"; setTimeout(function(){$("error").style.visibility = "hidden";},2000); } } } else{//network not success if(curTimeoutErrorInfo > 0) clearTimeout(curTimeoutErrorInfo) ; curTimeoutErrorInfo = setTimeout(function(){ $("resultError").innerHTML = "评分失败,请检查网络连接!"; $("error").style.visibility = "visible"; setTimeout(function(){$("error").style.visibility = "hidden";},2000); },2000) ; } } xmlHttp.open("POST", url, true); xmlHttp.send(); } else { //$("play_num_" + line).innerHTML = "";//URL not exist } //alert(_ajaxCon); }
下面也是一个简单的ajax写法:
var TSTimeSpan = 0; var requests = new Array(); function ajax_create_request(context) { var pos = requests.length; if (pos < 10) //??? { for (var i = 0; i < pos; i++) { if (requests[i].readyState == 4) { requests[i].abort(); requests[i].context = context; return requests[i]; } } } else { for (var i = 0; i < pos; i++) { if (requests[i].readyState == 4) { requests[i].abort(); } requests[i].obj = null; requests[i]=null; } requests = new Array(); pos = 0; } requests[pos] = Object(); requests[pos].obj = XMLHttpRequest(); requests[pos].context = context; return requests[pos]; } function ajax_request(userid, action, clientID, lastState, url, data, callback, httpresponse, context, objname) { var request = ajax_create_request(context); request.obj.onreadystatechange = function() { if (request.obj) { if(request.obj.readyState == 4) { httpresponse(new ajax_response(request)); if (callback) { callback(new ajax_response(request)); } } } } request.obj.open('GET', url, true); request.obj.setRequestHeader( "Accept", "text/xml"); request.obj.setRequestHeader("Content-Type", "text/xml"); request.obj.setRequestHeader("charset", "utf-8"); request.obj.setRequestHeader( "User-id", userid);//设置header request.obj.setRequestHeader( "User-action", action); request.obj.setRequestHeader( "TS-ClientID", clientID); request.obj.setRequestHeader( "X-Last-State", lastState); request.obj.setRequestHeader( "User-Json", data); request.obj.setRequestHeader( "Obj-Name", objname); request.obj.setRequestHeader( "S-Time", ""); request.obj.setRequestHeader( "TS-SpanTime", TSTimeSpan); request.obj.send(null); } function ajax_response(request) { this.request = request.obj; this.value = null; this.lastState = null; this.status = request.obj.status; this.context = request.context; this.value = this.request.responseText; this.clientid = this.request.getResponseHeader( "TS-ClientID"); this.sTime = this.request.getResponseHeader( "S-Time" );//获取header this.objName = this.request.getResponseHeader( "Obj-Name" ); TSTimeSpan = this.request.getResponseHeader( "TS-SpanTime" ); return this; }