2012-01-09 53 views
1

抱歉,但我无法理解这些例子。我从今天开始学习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下面的脚本。我不明白我们为什么要这样做。任何人都可以向我解释这些,我不确定上述脚本是否可选,请让我知道。

也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"); Im的无法理解它的参数,以及为什么它正在使用,它到底在做剧本。我们怎么通过content-typeapplication/x-www-form-urlencoded和仍在工作的意思是,即使我不给任何用户选项

请帮助我,这些都那么相信我已经完成了阿贾克斯tutorials.Thanks

+0

为了理解你对AJAX的要求,你需要了解一些关于HTTP协议的知识。包括“响应标题”,“内容类型”和“HTTP状态”。这个链接有一些很好的信息:http://www.w3schools.com/ajax/ – paulsm4 2012-01-09 07:34:58

回答

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

这基本上只需设置textHint以及AJAX所带来的任何结果(xmlhttp.responseText)。而textHint可以是简单的HTML代码ID textHint

<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> 

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

1

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

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

document.getElementById("txtHint").innerHTML=xmlhttp.responseText;innerHTML属性设置为您的响应内容。

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,完成时为3。 xmlhttp.status是请求的HTTP状态码(整数)。常见状态是 - 200(OK),303(移动),404(未找到)或500(内部服务器错误)。

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

部分3

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

部4

xmlhttp.responseText - 这是在纯文本格式的响应中,从所述服务器收到后,被发送使用HTTP协议的请求。

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

xmlhttp.responseXML和xmlhttp.responseBody。

希望这会帮助你在你的阿贾克斯日1.Yippee。

相关问题