Ajax 的请求与响应
2007-11-30 14:31
127 查看
发出请求
主要包括5个部分
从 Web 表单中获取需要的数据。
建立要连接的 URL。
打开到服务器的连接。
设置服务器在完成后要运行的函数。
发送请求。
下面为代码
function callServer() {
var city = document.getElementById("city").value;
var state = document.getElementById("state").value;
if ((city == null) || (city == "")) return;
if ((state == null) || (state == "")) return;
var url = "/scripts/getZipCode.php?city=" + escape(city) + "&state=" + escape(state);
xmlHttp.open("GET", url, true);
xmlHttp.onreadystatechange = updatePage;
xmlHttp.send(null);
}
其中大部分代码意义都很明确。开始的代码使用基本 JavaScript 代码获取几个表单字段的值。然后设置一个 PHP 脚本作为链接的目标。要注意脚本 URL 的指定方式,city 和 state(来自表单)使用简单的 GET 参数附加在 URL 之后。
然后打开一个连接,这是您第一次看到使用
最后,使用值
如果没有发现任何新鲜的东西,您应该体会到这是多么简单明了!除了牢牢记住 Ajax 的异步特性外,这些内容都相当简单。应该感激 Ajax 使您能够专心编写漂亮的应用程序和界面,而不用担心复杂的 HTTP 请求/响应代码。
处理响应
现在要面对服务器的响应了。现在只要知道两点:
什么也不要做,直到
服务器将把响应填充到
其中的第一点,即就绪状态,将在下一篇文章中详细讨论,您将进一步了解 HTTP 请求的阶段,可能比您设想的还多。现在只要检查一个特定的值(4)就可以了(下一期文章中还有更多的值要介绍)。第二点,使用
function updatePage() {
if (xmlHttp.readyState == 4) {
var response = xmlHttp.responseText;
document.getElementById("zipCode").value = response;
}
}
主要包括5个部分
从 Web 表单中获取需要的数据。
建立要连接的 URL。
打开到服务器的连接。
设置服务器在完成后要运行的函数。
发送请求。
下面为代码
function callServer() {
var city = document.getElementById("city").value;
var state = document.getElementById("state").value;
if ((city == null) || (city == "")) return;
if ((state == null) || (state == "")) return;
var url = "/scripts/getZipCode.php?city=" + escape(city) + "&state=" + escape(state);
xmlHttp.open("GET", url, true);
xmlHttp.onreadystatechange = updatePage;
xmlHttp.send(null);
}
其中大部分代码意义都很明确。开始的代码使用基本 JavaScript 代码获取几个表单字段的值。然后设置一个 PHP 脚本作为链接的目标。要注意脚本 URL 的指定方式,city 和 state(来自表单)使用简单的 GET 参数附加在 URL 之后。
然后打开一个连接,这是您第一次看到使用
XMLHttpRequest。其中指定了连接方法(GET)和要连接的 URL。最后一个参数如果设为
true,那么将请求一个异步连接(这就是 Ajax 的由来)。如果使用
false,那么代码发出请求后将等待服务器返回的响应。如果设为
true,当服务器在后台处理请求的时候用户仍然可以使用表单(甚至调用其他 JavaScript 方法)。
xmlHttp(要记住,这是
XMLHttpRequest对象实例)的
onreadystatechange属性可以告诉服务器在运行完成 后(可能要用五分钟或者五个小时)做什么。因为代码没有等待服务器,必须让服务器知道怎么做以便您能作出响应。在这个示例中,如果服务器处理完了请求,一个特殊的名为
updatePage()的方法将被触发。
最后,使用值
null调用
send()。因为已经在请求 URL 中添加了要发送给服务器的数据(city 和 state),所以请求中不需要发送任何数据。这样就发出了请求,服务器按照您的要求工作。
如果没有发现任何新鲜的东西,您应该体会到这是多么简单明了!除了牢牢记住 Ajax 的异步特性外,这些内容都相当简单。应该感激 Ajax 使您能够专心编写漂亮的应用程序和界面,而不用担心复杂的 HTTP 请求/响应代码。
处理响应
现在要面对服务器的响应了。现在只要知道两点:
什么也不要做,直到
xmlHttp.readyState属性的值等于 4。
服务器将把响应填充到
xmlHttp.responseText属性中。
其中的第一点,即就绪状态,将在下一篇文章中详细讨论,您将进一步了解 HTTP 请求的阶段,可能比您设想的还多。现在只要检查一个特定的值(4)就可以了(下一期文章中还有更多的值要介绍)。第二点,使用
xmlHttp.responseText属性获得服务器的响应,这很简单。
function updatePage() {
if (xmlHttp.readyState == 4) {
var response = xmlHttp.responseText;
document.getElementById("zipCode").value = response;
}
}
相关文章推荐
- jquery的ajax请求servlet与响应
- 掌握 Ajax,第 8 部分: 在请求和响应中使用 XML
- Ajax提高篇(3)在请求和响应中使用 XML(1)
- Node.js响应Ajax的POST请求并保存为JSON文件
- Ajax提高篇(4)在请求和响应中使用 XML(2)
- 掌握 Ajax,第 3 部分: Ajax 中的高级请求和响应
- 掌握 Ajax,第 3 部分: Ajax 中的高级请求和响应
- Ajax 中的高级请求和响应
- 掌握 Ajax (3)Ajax 中的高级请求和响应
- 掌握 Ajax,第 8 部分: 在请求和响应中使用 XML(2)
- 掌握 Ajax,第 3 部分: Ajax 中的高级请求和响应
- 掌握 Ajax,第 3 部分: Ajax 中的高级请求和响应
- ajax请求服务器的响应状态解析
- Ajax发送GET、POST请求和响应XML数据案例
- 掌握 Ajax,第 8 部分: 在请求和响应中使用 XML
- 第 3 部分: Ajax 中的高级请求和响应
- Ajax: 在请求和响应中使用 XML(续)
- 关于SpringMVC 中服务器端如何响应 AJAX 请求(即controller是如何返回json的)
- Ajax响应中文乱码 [SpringMVC使用@ResponseBody处理Ajax请求]
- 原生JS实现Ajax跨域请求flask响应内容