到目前为止,我已经理解了以下脚本
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-type
和application/x-www-form-urlencoded
我们的意思是什么,它仍在工作,即使我没有给任何用户选项
请帮助我这两个然后我相信我已经完成了Ajax教程。谢谢
答案 0 :(得分:1)
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
这基本上只是将textHint
设置为AJAX具有的任何结果(xmlhttp.responseText
)。 textHint
可以是标识为textHint
的简单html代码:
<div id="textHint"></div>
该代码绝对是可选的。您可以使用AJAX结果进行任何您想要的过程,EG:
alert(xmlhttp.responseText)
; 下一个问题:
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。