使用HttpRequest对象发送请求步骤:
1. 创建 HttpRequest 对象
- var xmlhttp = new XMLHttpRequest();
2. 告诉 XMLHttpRequest 对象,当状态发生改变时, 会调用哪个函数。
为此,要把 onreadystatechange 属性设置为指向 JavaScript 函数的指针
- xmlhttp.onreadystatechange = renewMsg;
3. 指定请求属性。XMLHttpRequest 对象的 open() 方法指定将发出的请求。
- xmlhttp.open("GET", url, true);
4. 将请求发送给服务器。send() 方法把请求发送到指定的目标资源。
例子:
- //发送给ajax接收器
- function sendMsgToAjax()
- {
- //
- var question = document.getElementById('inputArea').value;
- //alert(msg);
- question = trim(question);
- if(question == "请提问" || question == "请在此输入您的问题" || question == "您的建议答案是") return;
- if(question != "")
- {
- var url = "recvMsg.php?question=" + question + "&TempUserID="+TempUserID + "&preQuestion="+preQuestion+ "&IsTeachMode="+ IsTeachMode + "&IsAsk="+ IsAsk;
- preQuestion = question;
- document.getElementById('inputArea').value = "";
- //alert(url);
- xhr.open("GET", url, true);
- xhr.setRequestHeader("If-Modified-Since","0");
- xhr.onreadystatechange = renewMsg; //只要响应来,就调用这个函数
- xhr.send();
- }
- }
- //更新本页内容
- function renewMsg()
- {
- if(xhr.readyState == 4)
- { //XMLHttpRequest
- var xmlDoc = xhr.responseText;
- //alert(xmlDoc);
- var s = xmlDoc.split("|");
- xmlDoc = s[0];
- //alert(s[0]);
- //alert(s[1]);
- //接收信息内容去掉html标签
- xmlDoc = xmlDoc.replace(/>/g, '>');
- xmlDoc = xmlDoc.replace(/</g, '<');
- xmlDoc = xmlDoc.replace(/"g/, '\"');
- var financeUrl = s[1];/////////金融图片
- document.getElementById('financeImg').src = financeUrl;
- var weatherURL = s[2];
- document.getElementById('weather').src = weatherURL;
- var searchURL = s[3];
- document.getElementById('contentFrm').src = searchURL;
- if(financeUrl)//判断是否是金融问句,是跳转到股票section
- {
- doClick('a_section2');
- //document.getElementById("a_section2").click(); //变态的ie8不支持
- }
- else if(weatherURL)
- {
- doClick('a_section3');
- }
- else if(searchURL)
- {
- doClick('a_section4');
- }
- else //不是以上问句,跳转到首页section
- {
- doClick('a_section0');
- //document.getElementById("a_section0").click();//变态的ie8不支持
- }
- //alert(financeUrl);
- //location.reload();
- //alert(xmlDoc);
- var oldMsg = document.getElementById('outputArea').innerHTML;
- //alert(old);
- document.getElementById('outputArea').innerHTML = oldMsg + xmlDoc ;
- }
- if(xhr.readyState == 4 && IsTeachMode)
- {
- IsAsk++;
- if(IsAsk % 2 == 0)
- {
- document.getElementById('inputArea').value = '请提问';
- }
- else
- {
- document.getElementById('inputArea').value = '您的建议答案是';
- }
- }
- //滚动条置底
- var div = document.getElementById('outputArea');
- div.scrollTop = div.scrollHeight;
- }