任何人都可以解释我在谷歌上找到的示例脚本

时间:2012-01-09 07:27:44

标签: ajax

抱歉,但我无法理解这些例子。我从今天开始学习ajax。

到目前为止,我已经理解了以下脚本

if (window.XMLHttpRequest)
  {
   xmlhttp=new XMLHttpRequest();
  }
else
 {
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
 }

但在下面的脚本中

xmlhttp.onreadystatechange=function()
 {
   if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
     document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
    }
 }

为什么我们使用document.getElementById("txtHint").innerHTML=xmlhttp.responseText。我不明白为什么我们这样做。可以有人向我解释这些,我不确定上述脚本是否可选,请告诉我。

以及Ajax中的post方法

xmlhttp.open("POST","test.php",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("fname="+str);

xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");有什么用法我无法理解它的参数以及为什么要使用它,它在脚本中的作用是什么。 content-typeapplication/x-www-form-urlencoded我们的意思是什么,它仍在工作,即使我没有给任何用户选项

请帮助我这两个然后我相信我已经完成了Ajax教程。谢谢

3 个答案:

答案 0 :(得分:1)

document.getElementById("txtHint").innerHTML=xmlhttp.responseText;

这基本上只是将textHint设置为AJAX具有的任何结果(xmlhttp.responseText)。 textHint可以是标识为textHint的简单html代码:

<div id="textHint"></div>

该代码绝对是可选的。您可以使用AJAX结果进行任何您想要的过程,EG:

  • 警告:alert(xmlhttp.responseText);
  • 进行进一步处理,可能处理XML(如果是XML文档)或进行JSON处理。
  • 你想要的任何东西。

下一个问题:

xmlhttp.open("POST","test.php",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("fname="+str);

等于发送HTML表单:

<form method="POST"><input type="hidden" name="fname" value="{str}"/></form>

尝试使用fname方法将表单数据test.php发送到服务器脚本POST,并使用MIME-TYPE application/x-www-form-urlencoded传输数据。 You can read the full specification in W3 site

答案 1 :(得分:1)

这是AJAX本身的核心思想:更新页面上的单独元素而不刷新整个页面。在您的情况下,您更新了txtHint元素的内容。

document.getElementById("txtHint")将返回页面上控件的对象。

document.getElementById("txtHint").innerHTML=xmlhttp.responseText;会将innerHTML属性设置为您的回复内容。

答案 2 :(得分:1)

第1部分

根据浏览器的类型,您正在初始化两个对象。 XMLHttpRequest(XHR)是Mozilla,Safari,Chrome,Opera和Konqueror浏览器中的浏览器组件。名为“Microsoft.XMLHTTP”的ActiveXObject也是同一个对象,但该对象是Microsoft浏览器(Internet Explorer)中的activeX。

第2部分

xmlhttp .onreadystatechange是一个属性,您可以在其中记下自己的业务逻辑,以便在发送请求后如何处理此XHR对象。

初始化时xmlhttp.readyState为1,不完整时为2,即将完成时为3,完成时为4。 xmlhttp.status是请求的HTTP状态代码(整数)。常见状态为 - 200(OK),303(已移动),404(未找到)或500(内部服务器错误)。

所以,如果(xmlhttp.readyState ==完成&amp;&amp; xmlhttp.status = OK){做某事}

第3部分

document.getElementById(“someID”)通过引用它的ID返回文档中的HTML元素。如果元素是文本节点,那么DOM元素有一个名为innerHTML的属性,可用于更改/附加元素的内容。

第4部分

xmlhttp.responseText - 这是纯文本格式的响应,从服务器收到,您使用HTTP协议向其发送请求。

您还可以使用其他两种格式来处理服务器的响应。他们是,

xmlhttp.responseXML和xmlhttp.responseBody。

希望这能帮助你在你的ajax日1. Yippee。