上海岳城科技一个简单的Ajax请求例子

Ajax不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的Web应用程序的技术。通过Ajax,您可以使用 JavaScript的XMLHttpRequest对象来直接与服务器进行通信。您可以在不重载页面的情况与 Web 服务器交换数据。在本文的例子中,我们将演示当用户向一个标准的HTML表单中输入数据时网页如何与web服务器进行通信。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>一个简单的Ajax请求例子 - Admin10000.com </title>
    <script type="text/javascript">
        var xmlHttp;
        // 创建XMLHttpRequest对象
        function createXMLHttpRequest() {
            if (window.ActiveXObject) {
                xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
            else if (window.XMLHttpRequest) {
                xmlHttp = new XMLHttpRequest();
            }
        }
        // 整合url参数
        function createQueryString() {
            var name = document.getElementById("txtName").value;
            var sex = document.getElementById("txtSex").value;
            var birthday = document.getElementById("txtBirthday").value;
            var queryString = "Name=" + encodeURIComponent(name) + "&Sex=" + encodeURIComponent(sex) + "&Birthday=" + encodeURIComponent(birthday);
            return queryString;
        }
        // 按照Get方式传递参数
        function doRequestUsingGET() {
            createXMLHttpRequest();
            var queryString = "AjaxServer.ashx?";
            queryString = queryString + createQueryString() + "&timeStamp=" + new Date().getTime();
            xmlHttp.onreadystatechange = handleStateChange;
            xmlHttp.open("GET", queryString, true);
            xmlHttp.send(null);
        }
        // 按POST方式传递参数
        function doRequestUsingPOST() {
            createXMLHttpRequest();
            var url = "AjaxServer.ashx?timeStamp=" + new Date().getTime();
            var queryString = createQueryString();
            xmlHttp.open("POST", url, true);
            xmlHttp.onreadystatechange = handleStateChange;
            xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;");
            xmlHttp.send(queryString);
        }
        // 回调函数
        function handleStateChange() {
            if (xmlHttp.readyState == 4) {
                if (xmlHttp.status == 200) {
                    parseResults();
                }
            }
        }
        // 处理服务器响应内容
        function parseResults() {
            var responseDiv = document.getElementById("serverResponse");
            if (responseDiv.hasChildNodes()) {
                responseDiv.removeChild(responseDiv.childNodes[0]);
            }
            var responseText = document.createTextNode(xmlHttp.responseText);
            responseDiv.appendChild(responseText);
        }
    </script>
</head>
<body>
    <form action="#">
    <h2>输入你的名字,性别,生日:</h2>
    <table>
        <tr><td>名字:</td><td><input type="text" id="txtName" /></td></tr>
        <tr><td>性别:</td><td><input type="text" id="txtSex" /></td></tr>
        <tr><td>生日:</td><td><input type="text" id="txtBirthday" /></td>
        </tr>
    </table>
    <input type="button" value="用Get方式传参数" onclick="doRequestUsingGET();"/>
    <br /><br />
    <input type="button" value="用POST方式传参数" onclick="doRequestUsingPOST();"/>
    </form>
    <br />
    <h3>服务器响应内容:</h3>
    <div id="serverResponse"></div>
</body>
</html>

下面来详细说明下上例的每个JS函数的功能。
createXMLHttpRequest() 用来创建XMLHttpRequest对象。
因为IE把XMLHttpRequest实现为一个ActiveX对象,其他浏览器(FF/Safari/Opera)把它实现为一个本地JavaScript对象。由于存在这些差别,JavaScript代码中必须包含有关的逻辑。
createQueryString() 用来整理参数,将Ajax请求要传递的参数整理成一定的格式。
如果传递中文或非ASCII字符必须进行URL编码,本例使用JS的encodeURIComponent()函数进行参数URL编码。
doRequestUsingGET() 以HTTP GET方式向服务器发送请求,并且传递参数。
XMLHttpRequest对象的open()方法会指定将发出的请求。open()方法取3个参数:一个是指示所使用的方法(通常是GET或POST)的串;一个是表示目标资源URL的串;一个是Boolean值,只是请求是否是异步的。
GET请求时,将传递的参数写到open方法的url参数中,此时send方法的参数为null。
在某些情况下,有些浏览器会把多个XMLHttpRequest请求的结果缓存在同一个URL。如果对每个请求的响应不同,这就会带来不好的结果,把当前时间戳追加到URL的最后,就能确保URL的惟一性,从而避免浏览器缓存结果。
本例服务器端代码使用的是asp.net(c#)。
doRequestUsingPOST() 以HTTP POST方式向服务器发送请求,并且传递参数。 
确保open()中指定的方法是POST,需要设定Content-Type头信息,模拟HTTP POST方法发送一个表单,这样服务器才会知道如何处理上传的内容。设置头信息前必须先调用open方法。
必须使用send方法传递参数。参数的提交格式和GET方法中url的写法一样。
handleStateChange()  Ajax回调函数。
对于XMLHttpRequest对象,onreadystatechange属性存储了回调函数的指针。当XMLHttpRequest对象内部状态发生变化时,就会调用这个回调函数。
parseResults() 处理响应结果。

时间: 2024-10-22 22:25:59

上海岳城科技一个简单的Ajax请求例子的相关文章

上海岳城科技致那些自嘲码农的苦逼程序员

好吧你可以说这是水文. 今天下午和经理聊了一些关于软件行业的话题,这两天晚上都有朋友向我倾诉程序员的茫然和苦楚,我觉得有些想法可以记录下来.时光佐证,其实我好久没写发骚的文字了,就啰嗦啰嗦.我不算一个梦想家,但是对于信念还比较固执.人各有志,赚钱多多的钱,没有什么不好.但是我希望赚钱能真正作为一项副产品,把自己希望的事情,当做一项事业去做. 互联网环境恶劣.软件环境恶劣,来到北京工作数个月,我有一些未曾体味到的感触.多少人都在议论吃青春饭的职业,多少人在自嘲重复劳动.苦逼工作,多少人在听到"程序

上海岳城科技Web开发者必知的10个职业常识

上海岳城科技在哪里?众所周知,Web开发行业的持续发展和需求的不断变化给开发人员提出了新的要求与挑战.就网站而言,用户期望网站内容能更加丰富多彩.页面更加美观并且能提供良好的用户体验.如果Web开发人员一直止步不前,那终将会被淘汰. 站的高看到远,希望下面这十条能帮助你在开发这条道路上走的更远. 树立好印象 无论在何种场合,好的印象往往能使人记忆深刻.作为开发人员,忠于自己很重要,但与客户交流过程中,切勿向客户表达一些不切实际的想法或提出一些过分的要求,有时候一个坏印象就会流失很多订单甚至会给你

上海岳城科技快速学习新技术的几条建议

面对现在更新迅速的新技术,如何快速掌握,以满足工作的需要,是大部分开发者所面临的问题之一.它或许影响着你未来职业生涯的发展. Hanneli Tavante近日在Our Daily Codes网站上发表了一篇文章<Tips for learning a new programming language (when you already know one)>,正是针对该问题展开.开发者或许可以从该文中找到问题的解决之道.下面为该文的译文. 当开发者们开始一个新项目,或者想转变成一个新的团队,往

英语对于软件开发者来说到底有多重要?上海岳城科技来告诉你

英语是世界上最广泛使用的第二语言,是欧盟和许多国际组织与英联邦国家的官方语言之一.如今英语也是与电脑联系最密切的语言,大多数编程语言都与英语有联系.而且随着网络的使用,使英文的使用更普及.那么作为新时代的软件开发者,到底需不需要掌握英语呢?掌握英语对软件开发工作又有哪些好处呢?下面我们一起来看看过来人是怎么说的! 流行的英语编程语言 英语在软件行业.编程世界里都占有压倒性的优势,它能够帮助人们在关键词和代码库的选择上带来灵感.根据HOPL编程语言在线数据库的统计,全球有8500种以上的编程语言,

上海岳城科技告诉你成功者不断成功的十大非技术性理由

无论是四年一度的奥运会,还是每天都在上演的商业竞争,成功带来的优势,使成功者更容易保持其优势地位. 为揭示持续取得成功的秘诀,我在专业和业余体育运动员中选取样本,将成功者同失败者相比较,然后将结论同我的著作<信心>中商业案例的研究成果相对比.我选取了广泛的体育赛事组合,包括女子足球,男子和女子大学篮球,职业棒球大联盟,美式橄榄球,国际板球,和北美冰球等. 我发现,成功可以给成功者带来10大优势,并且引领他们不断取得成功.聪明的领导者应当培养和建立这些优势,以便在未来赢得成功. 1.积极的心态.

上海岳城科技web开发人员职业发展的11个阶段

今天我们带来的是一篇有趣的关于web开发人员职业发展11个不同阶段的文章. web开发人员是个有着许多阶段,非常有趣并且拥有挑战的一个职业.考虑到这陡峭的学习曲线,你可以完全预期到你将经历挫折,启蒙,自以为是以及在这些心态之间的转变.在这篇文章中,我们通过一系列超犀利的动画视角来看看这些阶段,相信这将非常有趣. 阶段一 菜鸟 在职业初期,我们总会有温热感,这段时期你对自己在做什么绝对是毫无头绪.就像是离了水的鱼,每一行代码都是一个谜.DOCTYPE?哈?见鬼的<div>是做什么的?第一个阶段是

一个简单的ajax请求

function  mimachongzhi(){ var contextPath = $("#contextPath").val(); var id=$("#id_reset").val(); var hiddenpwd=$("#hiddenpwd").val(); $.ajax({ type : "POST", url : contextPath+'userLogin!updateUserPasswords', data

观察HTTP协议中客户端向服务器发送的请求,理解并实现一个最简单的AJAX请求案例

一.什么是HTTP协议 HTTP协议即超文本传输协议,网站就是基于HTTP协议的,例如网站的图片.CSS.JS等都是基于HTTP协议进行传输的.HTTP协议是由从客户机到服务器的请求(Request)和从服务器到客户机的响应(Response)进行了约束和规范. 大白话的说,就是你在浏览器输入一个网址,例如http://baidu.com,这时你就是向百度的服务器发送了请求了....经过一系列你看不到的处理之后,你的浏览器出现一个百度的首页,这就是百度的服务器对你的浏览器的成功的响应. 二.在浏

一个简单的回调(例子)

1.声明一个回调Interface: public interface CallBack { /** * 执行回调方法 * @param objects 将处理后的结果作为参数返回给回调方法 */ public void execute(Object... objects ); } 2.回调的地方继承回调,实现回调的方法: import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamRe