php+ajax+xml POST提交方式
2013-04-25 18:17
471 查看
<html> <head> <script type="text/javascript" src="json.js"></script> <script> //创建AJAX XMLHttpRequest对象 var xmlHttp = false; try{ xmlHttp = new Activexobject("Msxml2.XMLHTTP"); }catch(e){ try{ xmlHttp = new Activexobject("Microsoft.XMLHTTP"); }catch(e2){ xmlHttp = false; } } if(!xmlHttp && typeof XMLHttpRequest != 'undefined'){ xmlHttp = new XMLHttpRequest(); } //POST方式 function callServer2(){ var city = document.getElementById("city").value; var state = document.getElementById("state").value; if((city == null) || (city == "")) return; if((state == null) || (state == "")) return; var xmlString ="<profile><test>" + "<city>" + escape(city) + "</city>" + "<state>" + escape(state) + "</state>" + "</test><test>" + "<city>1111</city>" + "<state>2222</state>" + "</test></profile>" var url = "response.php?timeStamp=" + new Date().getTime(); //alert(url); xmlHttp.open("POST",url,true); xmlHttp.onreadystatechange = updatePage; xmlHttp.setRequestHeader("Content-Type","text/xml"); xmlHttp.send(xmlString); } //回调处理函数 function updatePage(){ if(xmlHttp.readyState == 4){ if(xmlHttp.status == 200){ //IE6中是要创建对象 ActiveXObject("Microsoft.XMLDOM") 对responseXML对象进行加载后方可用getElementsByTagName进行解析的。 /* 要将responseXML这个片段,用loadXML()函数,这样才能当作XML文档来解析。否则取得的就是一个用XML格式好的字符串而不是XML模型。因为取回的是一段字符串,而不是XMLDOM模型。用DOM.loadXML(取回的字符串) */ var xmlDoc=new ActiveXObject("MicroSoft.XMLDOM"); xmlDoc.loadXML(xmlHttp.responseText); var test = xmlDoc.getElementsByTagName("test"); alert(test.length); alert(test[0].firstChild.firstChild.data); alert(test[1].firstChild.firstChild.data); document.getElementById("zipcode").value = test[0].firstChild.firstChild.data; } } } </script> </head> <body> <form> <p>City: <input type="text" name="city" id="city" size="25" onChange="callServer2();"></p> <p>State: <input type="text" name="state" id="state" size="25" onChange="callServer2();"></p> <p>Zip Code:<input type="text" name="zipcode" id="zipcode" size="5"></p> </form> </body> </html>
response.php
<? echo file_get_contents("php://input"); ?>
注意点~!
1. xmlHttp.setRequestHeader("Content-Type","text/xml");设置xml格式
2. var xmlDoc=new ActiveXObject("MicroSoft.XMLDOM");
xmlDoc.loadXML(xmlHttp.responseText);
返回的xml是字符串格式需要转换成XMLDOM模型,否则xmlDoc.length为0,获取不到xml节点值。
3. dom获取方式,test[0].firstChild.firstChild.data
相关文章推荐
- PHP 以POST方式提交XML、获取XML,最后解析XML
- PHP 以POST方式提交XML、获取XML,最后解析XML
- PHP 以POST方式提交XML、获取XML,最后解析XML
- PHP 以POST方式提交XML、获取XML,解析XML详解及实例
- 原始ajax通过xmlHttpRequest对象的send()方法提交数据--Get方式和Post方式
- ajax的post提交方式和传统的post提交方式哪个更快?
- 关于XMLHttpRequest.open()设置提交方式 (POST,GET)
- Ajax使用Post方式提交到.aspx页面交互的例子
- spring mvc ajax post 方式提交数据
- JQuery ajax post/get 提交方式的注意问题
- PHP表单中的Get与Post两种提交的方式的区别
- AJAX-----05XMLHttpRequest对象的用post方式进行ajax请求
- php采用ajax数据提交post与post常见方法总结
- XML(php中获取xml文件的方式/ajax获取xml格式的响应数据的方式)
- js + php 处理 永远的敌人 特殊符号 2 在js ajax post提交给php的解决方案 分类: php encode js javascript html实体显示 特殊符号 2014-03-28 11:05 273人阅读
- PHP无法获取表单post方式提交的数据问题
- 在PHP中模拟post提交方式,调用JSON接口_php调用json接口
- 力所能及之关于用JavaScript方式写ajax,post与get提交的注意区别
- PHP post提交xml 以及获取post过来的xml数据
- ajax的两种提交方式(get/post)和两种版本