使用 XML HTTP Request 对象[翻译](3)
作者:子乌 来源:子乌的叶子 发布时间:2007-11-07 21:11:00
标签:XML,XMLHTTP,ajax
一个URL是否存在?
另一个简单用途是判断URL是否存在,在HTTP中,HEAD和GET请求会返回集中状态代码,200代表成功,404代表失败,还有一些代表别的含义。查看HTTP状态代码获取详细的解释。对象使用属性来告诉你这个状态。
xmlhttp.open("HEAD", "/faq/index.html",true);
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4) {
if (xmlhttp.status==200) alert("URL 存在!")
else if (xmlhttp.status==404) alert("URL 不存在!")
else alert("状态是 "+xmlhttp.status)
}
}
xmlhttp.send(null)
无刷新调用服务端脚本
在HTML中,表单是一种调用服务端脚本的方法,它们会强制页面刷新,而这对用户来说通常并不是非常的友好。使用Http Request,你能够在不刷新页面的前提下调用脚本,并且在XML HTTP Request对象不可用的时候还能退而使用表单。
<%
a=+(Request.QueryString('a')+'')
b=+(Request.QueryString('b')+'')
if (isNaN(a) || isNaN(b)) {a='';b='';total='' }
else {
total=a+b
}
acc=Request.ServerVariables('HTTP_ACCEPT')+''
if (acc.indexOf('message/x-jl-formresult')!=-1) {
Response.Write(total)
} else {
%>
<script src="xmlhttp.js" type="text/javascript"></script>
<script>
function calc() {
frm=document.forms[0]
url="add.1?a="+frm.elements['a'].value+"&b="+frm.elements['b'].value
xmlhttp.open("GET",url,true);
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4) {
document.forms[0].elements['total'].value=xmlhttp.responseText
}
}
xmlhttp.setRequestHeader('Accept','message/x-jl-formresult')
xmlhttp.send()
return false
}
</script>
<form action="add.1" method="get" onsubmit="return calc()">
<input type=text name=a value="<%=a%>"> + <input type=text name=b value="<%=b%>">
= <input type=text name=total value="<%=total%>">
<input type=submit value="Calculate">
</form>
<%
}
%>
上面的示例使用了asp的jscript作为服务端语言,HTTP ACCEPT报头被用来告诉服务端需要发送回什么样的响应--完整的页面或者只是结果。这个HTTP ACCEPT报头用来告诉服务端客户端会接受什么样的mime-types,通常它会是一些类似 text/html的内容。这里我们告诉它我们只接受message/x-jl-formresult,所以服务器知道它是我们的客户端(或者其他知道message/x-jl-formresult的客户端)提出的请求。
另一个判断返回内容的方法是通过你发送给服务器的数据的类型推断,你也可以简单将表单提交给xmlhttp request的url变换一下。无论你怎么作,保留对可能存在的不支持xmlhttp request的浏览器的向下兼容是很明智的。


猜你喜欢
- 原文地址https://www.codementor.io/python/tutorial/advanced-use-python-deco
- Hough圆变换的原理很多博客都已经说得非常清楚了,但是手动实现的比较少,所以本文直接贴上手动实现的代码。这里使用的图片是一堆硬币:&nbs
- QCheckBox 是具有两种状态的控件:开和关。它是一个带有标签的复选框。复选框通常用于表示应用程序可以启用或禁用的功能。#!/usr/b
- 以前在工作中遇到一个问题,当表单发送的数据量很大时,就会报错。查阅MSDN了解到,原因是微软对用Request.Form()可接收的最大数据
- phpstorm配置debug环境众所周知,在渗透测试进行代码审计的时候,往往要审计代码的执行过程,亦或是在开发php项目的时候,需要了解代
- 前言本文主要给大家介绍了关于Python3列表方法的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。1 使用[]或
- 例子:1:www.jb51.net2:www.jb51.net3:www.jb51.net4:www.jb51.net5:www.jb51.
- 代码如下:'===================================== '转换内容,防止意外 '==
- tensorflow利用anaconda在ubuntu下安装方法及jupyter notebook运行目录及远程访问配置Ubuntu下安装A
- 前言:K8s也提供API接口,提供这个接口的是管理节点的apiserver组件,apiserver服务负责提供HTTP API,以便用户、其
- 二分类问题可能是应用最广泛的机器学习问题。今天我们将学习根据电影评论的文字内容将其划分为正面或负面。一、数据集来源我们使用的是IMDB数据集
- 每次和朋友聊天苦于没有表情包,而别人的表情包似乎是取之不尽、用之不竭。作为一个程序员哪能甘愿认输,于是做了一个表情包下载器供大家斗图。首先,
- 本文实例讲述了Python读取properties配置文件操作。分享给大家供大家参考,具体如下:工作需要将Java项目的逻辑改为python
- 1、停止所有Oracle服务进入计算机管理,在服务中,找到oracle开头的所有服务,右击选择停止。快捷键:ctrl+shift+esc打开
- 基于tkinter模块的GUIGUI是图形用户界面的缩写,图形化的用户界面对使用过计算机的人来说应该都不陌生,在此也无需进行赘述。Pytho
- 本文实例讲述了PHP cookie,session的使用与用户自动登录功能实现方法。分享给大家供大家参考,具体如下:cookie的使用//生
- 利用百度api实现人像动漫化百度API地址:https://ai.baidu.com/tech/imageprocess/selfie_an
- vue中异步数据获取1、获取异步数据,通过async/await限制 import { fetchList } from '
- 本文实例讲述了微信公众平台实现获取用户OpenID的方法。分享给大家供大家参考。具体分析如下:用户点击微信自定义菜单view类型按钮后,微信
- 本文实例讲述了Python使用scrapy采集时伪装成HTTP/1.1的方法。分享给大家供大家参考。具体如下:添加下面的代码到 settin