1、html如何处理服务器返回的消息
Ajax,很流行的
下面的代码请保存为html后调试,在关键的地方我已经用中文解释过了。调试时要注意:
1.把两个form的action=""里URL改成你要提交的页面,否则,post提交方法会出错。
2.把两个Form里的<input><select>等控件改成你要提交页面所必须的控件,现在的只是示例。
3.代码有点长,测试的时候要耐心,容易出错
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk">
<title>AJAX Form Submit Test</title>
<script>
function $(objId) {
return document.getElementById(objId);
}
function AjaxFormer (form, resultDivId) {
this.form = form;
this.resultDivId = resultDivId;
this.ajaxSubmitForm = function() {
var elements = form.elements;// Enumeration the form elements
var element;
var i;
var postContent = "";// Form contents need to submit
for(i=0;i<elements.length;++i) {
var element=elements[i];
if(element.type=="text" || element.type=="textarea" || element.type=="hidden") {
postContent += encodeURIComponent(element.name) + "=" + encodeURIComponent(element.value) + "&";
}
else if(element.type=="select-one"||element.type=="select-multiple") {
var options=element.options,j,item;
for(j=0;j<options.length;++j){
item=options[j];
if(item.selected) {
postContent += encodeURIComponent(element.name) + "=" + encodeURIComponent(item.value) + "&";
}
}
} else if(element.type=="checkbox"||element.type=="radio") {
if(element.checked) {
postContent += encodeURIComponent(element.name) + "=" + encodeURIComponent(element.value) + "&";
}
} else if(element.type=="file") {
if(element.value != "") {
postContent += encodeURIComponent(element.name) + "=" + encodeURIComponent(element.value) + "&";
}
} else {
postContent += encodeURIComponent(element.name) + "=" + encodeURIComponent(element.value) + "&";
}
}
this.ajaxSubmit(form.action, form.method, postContent, resultDivId);
}
this.ajaxSubmit = function(url, method, postContent, resultDivId)
{
var loadingDiv = document.getElementById('loading');
if(!loadingDiv) {
loadingDiv = document.createElement("div");
loadingDiv.id = "loading";
loadingDiv.style.border="1px solid #008800";
document.body.appendChild(loadingDiv);
}
// call in new thread to allow ui to update
window.setTimeout(function () {
loadingDiv.innerHTML = "<img src='./images/loading.gif'/>Loading....";
loadingDiv.style.display = "";
}, 1);
// code for Mozilla, etc.
if (window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
// code for IE
else if (window.ActiveXObject)
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
if(xmlhttp) {
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState==4)
{
try {
if(xmlhttp.status==200) {
if(resultDivId) {
$(resultDivId).innerHTML = xmlhttp.responseText;
//如果用的post的提交方法请改这里。上面一句是提交后的HTML语句,具体的请看下面get的修改方法
} else {
var result = document.createElement("DIV");
result.style.border="1px solid #363636";
result.innerHTML = xmlhttp.responseText;
//如果用的get的提交方法请改这里(注意:上面用post提交方法的修改方法和这里的一样)。上面这一行是获取提交后页面HTML的语句,你可以把上面这句去掉,那么在页面上就不会出现结果页面了(不影响结果的判断)
//当你把上面那句改成:result.innerText = xmlhttp.responseText;
//那显示的结果就是HTML语句了
//你可以在xmlhttp.responseText里查找登陆成功的字符串,比如登陆成功后往往会显示“登陆成功”,登陆失败会显示“密码不正确”
//那么用if(xmlhttp.responseText.indexOf("登陆成功") > 0)来判断是否有“登陆成功”的字符就可以判断是否成功了
//下面注释掉的就是来判断是否登陆成功的,你按情况来改吧,运行的时候注意把注释符号去掉
/*
if(xmlhttp.responseText.indexOf("登陆成功") > 0)
{
alert("登陆成功");
}
else
alert("登陆失败");
*/
//
document.body.appendChild(result);
}
if(xmlhttp.getResponseHeader("response_script")) {
eval(unescape(xmlhttp.getResponseHeader("response_script")));
}
loadingDiv.innerHTML =
"<img src='/images/good.gif'/>Submit finnished!";
}
else {
loadingDiv.innerHTML = "There is something wrong with form submit! ".fontcolor("red")
+ xmlhttp.status + "=" + xmlhttp.statusText;
}
} catch(exception) {
loadingDiv.innerHTML = "There is something wrong with form submit! ".fontcolor("red")
+ exception;
}
}
};
if(method.toLowerCase() == "get") {
xmlhttp.open("GET", url + "?" + postContent, true);
xmlhttp.send(null);
} else if(method.toLowerCase() == "post") {
xmlhttp.open("POST", url, true);
xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlhttp.send(postContent);
}
} else {
loadingDiv.innerHTML =
"Can't create XMLHttpRequest object, please check your web browser.";
}
}
}
// }}} end of common utils methods
</script>
</head>
<body>
提交方式: POST<br>
<form method="POST" id="form1" name="form1"
action="http://www.baidu.com"
onSubmit="former.ajaxSubmitForm();return false;">
<p><input type="hidden" name="hidden1" value="hiddenValue">
text:<input type="text" name="textf&1" size="20" value="text文本&1">
checkbox:<input type="checkbox" name="checkbox1" value="ON" checked>
radio:<input type="radio" value="V1" checked name="radio1">
select:<select size="1" name="select1">
<option selected value="option1">D1</option>
</select>
<br>
<br>
<input type="submit" name="B1" value="submit">
<input type="reset" name="B2" value="reset">
</p>
</form>
<br><br><br><br><br>
提交方式: GET<br>
<form method="GET" id="form2" name="form2"
action="http://www.baidu.com"
onSubmit="former2.ajaxSubmitForm();return false;">
<p><input type="hidden" name="hidden1" value="hiddenValue">
text:<input type="text" name="text文本&2" size="20" value="text文本&2">
checkbox:<input type="checkbox" name="checkbox1" value="ON" checked>
radio:<input type="radio" value="V1" checked name="radio1">
select:<select size="1" name="select1">
<option selected value="option1">D1</option>
</select>
<br>
<br>
<input type="submit" name="B1" value="submit">
<input type="reset" name="B2" value="reset">
</p>
</form>
<div id="loading" style="display:none; position:absolute;
border:1px solid orange; height:20px; width:600; left: 93px; top: 112px;
background-color: #FFFFCC; cursor:pointer;" title="Click to hide" onClick="this.style.display='none';"></div>
<div id="resultDiv" style="border:1px solid orange; background-color: #FFFFCC; cursor:pointer;" title="Click to hide" onClick="this.style.display='none';">
Form 1 的提交结果将会显示在这里.
</div>
<script type="text/javascript">
var former = new AjaxFormer($('form1'), 'resultDiv');
var former2 = new AjaxFormer($('form2'));
</script>
</body>
</html>
2、塔防三国玩一会就出出现 服务器返回的字节长度<=0 怎么办
是手机版还是电脑版,手机版的话估计是你下的版本不兼容换个版本试试,重装过没?
3、一按下载就是马上显示下载失败,然后会有提示框说 服务器返回version code 为0 。
您好!感谢您使用三星产品!
您咨询的三星I9100G是安卓系统的手机,支持软内件格式为APK,建议容您尝试登陆安卓机锋等手机论坛下载软件安装包,然后用数据线传输到手机SD卡,直接安装,或者使用91助手等第三方辅助软件安装。
4、服务端返回结果长度为零异常是什么原因
发生在TCP 3次握手刚好完成,服务器TCP将连接放入到已经建立好连接队列中,此时客户端给一个RST,接下来accept返回,不过这时accept返回的是ECONNECTABORT错误.这不是一个致命错误。
2、服务器进程终止过程如下:a、kill掉服务进程,作为进程善后处理的部分,所有打开的文件描述符被关闭,这导致服务端TCP(注意"服务端"和"服务端TCP"是不同概念)发送FIN给客户端,客户端TCP响应以ACK。
b、客户端此时正阻塞在scanf函数(基于上篇中提到的客户端模型),这导致客户端不知道服务端TCP已经关闭连接。
c、客户端在scanf返回后调用write向服务端发数据,由于服务端已经被kill掉,所以服务端TCP会发送一个RST给客户端TCP.
d、客户端在发送完数据后立即调用read读取数据,由于有第一步的FIN,read立即返回0(表示EOF),然而客户端希望的是收到刚才发送的数据而不是EOF。如果客户端接着往服务端发数据,将诱发服务端TCP向服务端发送SIGPIPE信号,因为向接收到RST的套接口写数据都会收到此信号.
问题的本质在于客户端同时处理两个描述字--套接口和用户输入,程序被单纯地阻塞在一个源上了。这个问题可以通过1、设置非阻塞模式。2、采用select以及epoll处理。
3、服务器主机崩溃
在客户TCP发送数据后,由于接收不到ACK,它将试图一直重传,直到最后放弃,并返回给客户进程一个出错信息。ETIMEOUT表示没有相应,EHOSTUNREACH表示路由器判定主机不可达。
4、服务器崩溃后重启
由于服务端TCP丢失了以前的连接信息,这将导致服务端发送一个RST,而此时客户端阻塞在read函数,这将导致返回一个ECONNECTRESET错误.
5、服务器关机
服务器关机时init进程会先发送SIGTERM(此信号可捕获)给所有进程,再过一段时间发送SIGKILL(次信号不可捕获)给仍然在运行的程序,这时就和服务器进程终止一样了。
5、服务器返回异常[0]!,中国大学慕课电脑版给的提示什么意思网站崩了还是我电脑问题?
网易服务器崩了吧,刚刚被约谈,估计心情不好吧
6、服务器上所有网站日志全部返回200 0 0,没有别的代码的,访问不存在的页面也是返回200,急……
你肯定自定义404页面了,先取消试试
7、三星I9100下载软件时提示 服务器返回versioncode为0是怎么回事
可以刷机试试
8、qq游戏塔防三国:进入时提示,服务器返回的字节长度<=0,进入不了??
亲爱的玩家您好:
亲爱的玩家您好:
一:清理浏览器缓存(Internet选项→删除文件、清空临内时文件、删除COOKIES)→容重启浏览器即可。
二:强制清理缓存,具体是:点“开始”--“运行”,然后输入cmd--确认,在出来的窗口里输入del *.sol /s然后按回车,删除后关闭所有网页。del和*之间有空格,sol和/之间有空格。
三:更换浏览器
四:下载安装最新版FLASH插件,再登录游戏。
51街机三国官网粉丝团很高兴为您解答,更多精彩尽在51游戏社区!
9、服务器意外返回值是什么意思?
我的话我觉得你最好去问一下那种程序员大婶,他们对这个问题可能比较清楚。
10、服务器端返回错误....怎么办?
机房线路的问题。一般来讲,单线的机房(比如联通的机房),铁通的用户访问起来就很困难。如果想绝大部分的宽带用户都能正常访问,最好的办法就是用多线的。
希望早日实现各条线路的顺畅互联互通!