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、伺服器端返回錯誤....怎麼辦?
機房線路的問題。一般來講,單線的機房(比如聯通的機房),鐵通的用戶訪問起來就很困難。如果想絕大部分的寬頻用戶都能正常訪問,最好的辦法就是用多線的。
希望早日實現各條線路的順暢互聯互通!