1、服务器返回的数据,该怎么接收
第一个问题:先搞清ajax的底层通信形式,ajax发出请求后等待回复,也就是监听某个信息端口,服务器接到请求后,发送结果,也就是向某个端口写信息,所以,不管在形式上编程上有什么不同,都是向这个ajax所在地的信息端口输出信息。
2、大家好:从服务器返回一个参照,什么意思
当我们运行软件的时候经常会跳出这个错误,究其原因是UAC(用户账户控制)权限问题。
以下几种解决办法:
一、随机应变法
1.以管理员的身份运行:这是解决此问题最简单也是最有效果的一种方法,出现“从服务器返回一个参照”是因为可执行文件没有权限所致,以管理员身份运行,给予它最高权限,自然可以解决这个问题。
2.如果每次都是以管理员身份运行可能很多用户觉得很麻烦,如果你经常使用这个软件的话,可以配置打开方式,使它每次打开的方式都是以管理员身份运行,具体方法,右键点击执行文件,选择属性,点击兼容性选项卡,最下边有个特权等级,勾选即可。
二、一劳永逸法
更改策略组:这应该是网上流传最多的解决办法,但是操作过程十分简单,使得很多新手朋友摸不着头脑,小编就详细的介绍下此方法(没有亲自验证,不知道是否真能够解决),首先应该打开cmd,win7下的快捷方式是win+R(其中win是我们打开开始菜单经常使用的那个键)。
接着在输入框中输入gpedit.msc,点击确定我们便来到了本地策略组,此步大部分教程还是介绍到了,很多人也能找的到,但是以后的步骤便很简单了,使得众多用户摸不着头脑,下面小编详细的介绍一下,点击计算机配置,windows设置,然后点击安全设置(很多人找不到安全设置在那)。
安全设置下也有很多选项,我们找到本地策略,展开它,找到安全选项,这里面的东西才是我们今天的主角,怎么样,教程够详细了吧,详细大家都能找的到了,不过此方法是以win7为基础的,vista可能略有不同。
然后我们找到用户账户控制选择项,然后找到用户账户控制:只提升签名并验证的可执行文件(用户账户控制的最后一个选项),然后双击选择禁用即可,至此更改策略组的方法至此结束。
控制面板法:我们打开控制面板(相信大家都找的到吧),然后找到用户账户和家庭安全选项,然后点击用户账户,来到用户账户设置界面。然后找到“更改用户账户控制设置”,点击它。
然后会打开一个面板,这就是我们需要的,默认的是程序尝试更改我的计算机的时候提示,我们把它改成从不通知即可(此方法和更改策略组的方法小编均没有测试过,只是因为网上盛传故在此列出)。
注意事项
一劳永逸法小编没有亲自测试过,是网络中盛传的两种方法,故在此列出来。
WIN7和VISTA这种安全系数比较高的操作系统都启用的UAC,因此很多软件运行都有局限性,如果不想关闭可以每次以管理员身份运行即可,如果嫌麻烦可以关闭UAC。
本经验是以win7操作系统为例子,vista或许略有不同,如不解决可以网络vista的解决办法。
3、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>
4、服务器返回503 代码怎么办?
503是一种HTTP状态码,是服务器出错的一种返回状态,由于临时的服务器维护或者过载,服务器当前无法处理请求。这个状况是临时的,并且将在一段时间以后恢复。服务器返回503主要通过一下方法解决:
首先要检查你是否关闭了应用程序池。每个网站都对应了一个应用程序池(IIS服务器是如此),当然他们可能是相同的应用程序池,也能是不同的,查看出现503错误网站对应的程序池是否开启。
如果没有关闭应用程序池,那就要看看是否请求到达时应用程序池队列已满。每个网站都有其最大的负载量,当访问请求达到这个值的时候就会出现503错误,解决办法可以加大请求队列,默认值为1000。
还有一种可能,应用程序池标识没有使用预定义账户:网络服务,而自己配置了标识,但是配置的这个用户不属于IIS_WPG组,遇到这种情况,可以改变网站的 应用程序池路径,把它改为属于IIS_WPG组的应用程序池。
还有就是CPU占用率太高,而且应用程序池启用了CPU监视,设置了CPU利用率超过一定百分比关闭应用程序池,而开发人员写的服务端页面(.asp,.aspx)执行效率不高,会引起CPU的长时间占用,最终达到设置的百分比,从而引起应用程序池关闭。遇到此种情况可以重新启动应用程序池即可。
5、会显示出服务器返回错误,怎么破
503是一种HTTP状态码,是服务器出错的一种返回状态,由于临时的服务器维护或者过载,服务器当前无法处理请求。这个状况是临时的,并且将在一段时间以后恢复。服务器返回503主要通过一下方法解决:
首先要检查你是否关闭了应用程序池。每个网站都对应了一个应用程序池(IIS服务器是如此),当然他们可能是相同的应用程序池,也能是不同的,查看出现503错误网站对应的程序池是否开启。
如果没有关闭应用程序池,那就要看看是否请求到达时应用程序池队列已满。每个网站都有其最大的负载量,当访问请求达到这个值的时候就会出现503错误,解决办法可以加大请求队列,默认值为1000。
还有一种可能,应用程序池标识没有使用预定义账户:网络服务,而自己配置了标识,但是配置的这个用户不属于IIS_WPG组,遇到这种情况,可以改变网站的 应用程序池路径,把它改为属于IIS_WPG组的应用程序池。
还有就是CPU占用率太高,而且应用程序池启用了CPU监视,设置了CPU利用率超过一定百分比关闭应用程序池,而开发人员写的服务端页面(.asp,.aspx)执行效率不高,会引起CPU的长时间占用,最终达到设置的百分比,从而引起应用程序池关闭。遇到此种情况可以重新启动应用程序池即可。
6、什么叫服务器返回错误
就是向服务器发送请求,服务器返回的数据是错误的,或者是没有数据返回。
7、运行程序显示“从服务器返回一个参照”怎么办
方法一、
1、以管理员身份运行,出现“从服务器返回一个参照”是因为可执行文件没有权限导致的,所以给予它最高权限,这样就可以解决问题了。
如何解决win7运行程序时显示“从服务器返回一个参照” 三联
2、如果你经常使用这个软件的话,可以配置打开方式,比较方便,这样它就可以每次打开的方式都是以管理员身份运行了,方法是鼠标右击执行文件,然后选择“属性”,在“兼容性”选项卡中,然后在特权等级下勾选“以管理员身份运行此程序”,点击确定退出即可。
方法二、
1、打开开始菜单中的控制面板,然后点击控制面板中用户账户界面下方的“更改用户账户控制设置”;
“更改用户账户控制设置”
2、接着在打开的控制设置面板中,将下方的按钮滑动至“从不通知”即可。
按钮滑动至“从不通知”
方法三、
1.首先打开运行对话框,并输入“gpedit.msc”,回车打开组策略;
输入“gpedit.msc”
2.然后在打开的组策略窗口中依次展开“计算机配置-windows配置-安全配置”选项;
展开“计算机配置-windows配置-安全配置”选项
3、然后在窗口右侧中找到并双击“用户账户控制:值提升签名并验证的可执行文件”选项,选择禁用即可。
双击“用户账户控制:值提升签名并验证的可执行文件”选项
8、请问服务器默认返回是什么格式数据??
$.get(url,function(data){
$("#result").html(data);
})
不需要参数就不用写。不要写上个null。这样不对。
9、服务器常见页面访问返回错误信息(404 500 400)表示什么意思
具体意思如下:
1、404 Not Found
请求失败,请求所希望得到的资源未被在服务器上发现。没有信息能够告诉用户这个状况到底是暂时的还是永久的。假如服务器知道情况的话,应当使用410状态码来告知旧资源因为某些内部的配置机制问题,已经永久的不可用,而且没有任何可以跳转的地址。
404这个状态码被广泛应用于当服务器不想揭示到底为何请求被拒绝或者没有其他适合的响应可用的情况下。出现这个错误的最有可能的原因是服务器端没有这个页面。
2、500 Internal Server Error
服务器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理。一般来说,这个问题都会在服务器端的源代码出现错误时出现。
3、400 Bad Request
(1)语义有误,当前请求无法被服务器理解。除非进行修改,否则客户端不应该重复提交这个请求。
(2)请求参数有误。
其他错误信息常见HTTP状态码:
401 Unauthorized
当前请求需要用户验证。该响应必须包含一个适用于被请求资源的 WWW-Authenticate 信息头用以询问用户信息。客户端可以重复提交一个包含恰当的 Authorization 头信息的请求。
如果当前请求已经包含了 Authorization 证书,那么401响应代表着服务器验证已经拒绝了那些证书。
如果401响应包含了与前一个响应相同的身份验证询问,且浏览器已经至少尝试了一次验证,那么浏览器应当向用户展示响应中包含的实体信息,因为这个实体信息中可能包含了相关诊断信息。
402 Payment Required
该状态码是为了将来可能的需求而预留的。
403 Forbidden
服务器已经理解请求,但是拒绝执行它。与401响应不同的是,身份验证并不能提供任何帮助,而且这个请求也不应该被重复提交。如果这不是一个 HEAD 请求,而且服务器希望能够讲清楚为何请求不能被执行,那么就应该在实体内描述拒绝的原因。
当然服务器也可以返回一个404响应,假如它不希望让客户端获得任何信息。
参考资料:网络-HTTP状态码