链接地址:http://jipiao1.lezhu.org.cn/data/flightline.asp?top=10&orgcityid=53事实上这是一个不太正式的接口,我主要是想获取里面返回的xml数据,但是试了很多种方法都没成功,原因是我不知道问题出在那里。下面说一下我都用了什么方法:
1.function getComTickets(myxml,rows,orgcityid)
{
var my_new_url = xmlurl2 + "?top="+rows+"&orgcityid="+orgcityid+"&time="+new Date().toLocaleTimeString();
var xmlHttp = new RXmlHttpRequest().get();
// try{
// netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
// }catch(e){alert("调用失败!请更换浏览器重新调用!");} xmlHttp.open("get",my_new_url,false);
xmlHttp.send(null);
debugger;
xmlHttp.onreadystatechange = function(){
if(xmlHttp.readyState == 4 || xmlHttp.readyState == 'complete'){
if(xmlHttp.status == 200){
if(xmlHttp.responseText != "")
{
var xmlDom = XmlDom();
xmlDom.async = 'false';
xmlDom.loadXML(xmlHttp.responseText);
var xml = xmlDom.documentElement;
//var items = xml.getElementsByTagName("flightline/line");
var items = xmlDom.selectNodes("flightline/line");
var html_l = new StringBuilder();
var html_r = new StringBuilder();
html_l.append("<tr>");
html_r.append("<tr>");
for(var i = 0; i<items.length;i++)
{
//alert(i+" "+xmlDom.selectSingleNode("flightline/line["+i+"]/qrydate").text);
if(i < 5)
{
// html_l.append("<td>"+xml[i].getElementsByTagName("qrydate").childNodes[0].nodeValue+"</td>");
// html_l.append("<td>"+xml[i].getElementsByTagName("orgcityname").childNodes[0].nodeValue+"-"+xml[i].getElementsByTagName("descityname").childNodes[0].nodeValue+"</td>");
// html_l.append("<td>"+xml[i].getElementsByTagName("lowesttcprice").childNodes[0].nodeValue+"</td>");
html_l.append("<td>"+xmlDom.selectSingleNode("flightline/line["+i+"]/qrydate").text+"</td>");
html_l.append("<td>"+xmlDom.selectSingleNode("flightline/line["+i+"]/orgcityname").text+"-"+xmlDom.selectSingleNode("flightline/line["+i+"]/descityname").text+"</td>");
html_l.append("<td>"+xmlDom.selectSingleNode("flightline/line["+i+"]/lowesttcprice").text+"</td>");
}
else
{
html_r.append("<td>"+xmlDom.selectSingleNode("flightline/line["+i+"]/qrydate").text+"</td>");
html_r.append("<td>"+xmlDom.selectSingleNode("flightline/line["+i+"]/orgcityname").text+"-"+xmlDom.selectSingleNode("flightline/line["+i+"]/descityname").text+"</td>");
html_r.append("<td>"+xmlDom.selectSingleNode("flightline/line["+i+"]/lowesttcprice").text+"</td>");
}
}
//alert(html_l.toString("")+html_r.toString(""));
document.getElementByID("city_53").innerHtml = html_l.toString("")+html_r.toString("");
}
window.status = "完毕!";
}else{
window.status = "数据加载失败!";
}
}else{
window.status = "请求中...";
}
}
}function getComHtml()
{
var xmlDom = new XmlDom();
xmlDom.async = "false";
//xmlDom.resolveExternals = "false";
//xmlDom.setProperty("ServerHTTPRequest",true);
var ulr ="http://jipiao1.lezhu.org.cn/data/flightline.asp?top=10&orgcityid=53&time="+new Date().toLocaleTimeString();
xmlDom.load(ulr);
var items = xmlDom.selectNodes("flightline/line");
var html_l = new StringBuilder();
var html_r = new StringBuilder();
for(var i=0;i<items.length;i++)
{
if(i < 5)
{
html_l.append("<td>"+items(i).selectSingleNode("qrydate").Text+"</td>");
}
else
{
html_r.append("<td>"+items(i).selectSingleNode("qrydate").Text+"</td>");
}
}
alert(html_l.toString()+html_r.toString());
}function XmlDom()
{
if(window.ActiveXObject)
{
var arrSignatures = ["MSXML2.DOMDocument.5.0","MSXML.DOMDocument.4.0","MSXML.DOMDocument.3.0","MSXML.DOMDocument","Microsoft.XmlDom"];
for(var i =0;i<arrSignatures.length;i++)
{
try{
var oXmlDom = new ActiveXObject(arrSignatures[i]);
return oXmlDom;
}catch(oError)
{
}
}
throw new Error("您的系统并不支持MSXML!");
}
else if(document.implementation && document.implementation.createDocument)
{
var xmlDom = document.implementation.createDocument("","",null);
return xmlDom;
}
else
{
throw new Error("您的浏览器并不支持 XmlDom 对象!");
}
}function StringBuilder()
{
this._stringArray = new Array();
}
StringBuilder.prototype.append = function(str)
{
this._stringArray.push(str);
}StringBuilder.prototype.toString = function(joinGap)
{
return this._stringArray.join(joinGap);
}
2.跟上面代码大多一样,只不过xmldom对象使用load的方法的时候直接把url当参数,略过。
3.后台获取
StringBuilder sbXml = new StringBuilder();
Context.Response.ClearContent();
Context.Response.ContentType = "text/xml";
using (XmlTextReader xr = new XmlTextReader("http://jipiao1.lezhu.org.cn/data/flightline.asp?top=" + top + "&orgcityid=" + orgcityid))
{
while (xr.Read())
{
sbXml.Append(xr.ReadInnerXml());
}
}
Context.Response.Write(sbXml.ToString());
Context.Response.End();第一种,IE获取内容为空,第二种ff里面报组件返回错误代码0x80004005等等,第三种后台获取的内容为空报错。
总之一句话,什么结果都没有,对js的不太熟悉,让我此时不知道从哪儿下手了,各位大侠不吝赐教吧!在下除了感谢敬佩外只剩下实实在在的分了。
1.function getComTickets(myxml,rows,orgcityid)
{
var my_new_url = xmlurl2 + "?top="+rows+"&orgcityid="+orgcityid+"&time="+new Date().toLocaleTimeString();
var xmlHttp = new RXmlHttpRequest().get();
// try{
// netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
// }catch(e){alert("调用失败!请更换浏览器重新调用!");} xmlHttp.open("get",my_new_url,false);
xmlHttp.send(null);
debugger;
xmlHttp.onreadystatechange = function(){
if(xmlHttp.readyState == 4 || xmlHttp.readyState == 'complete'){
if(xmlHttp.status == 200){
if(xmlHttp.responseText != "")
{
var xmlDom = XmlDom();
xmlDom.async = 'false';
xmlDom.loadXML(xmlHttp.responseText);
var xml = xmlDom.documentElement;
//var items = xml.getElementsByTagName("flightline/line");
var items = xmlDom.selectNodes("flightline/line");
var html_l = new StringBuilder();
var html_r = new StringBuilder();
html_l.append("<tr>");
html_r.append("<tr>");
for(var i = 0; i<items.length;i++)
{
//alert(i+" "+xmlDom.selectSingleNode("flightline/line["+i+"]/qrydate").text);
if(i < 5)
{
// html_l.append("<td>"+xml[i].getElementsByTagName("qrydate").childNodes[0].nodeValue+"</td>");
// html_l.append("<td>"+xml[i].getElementsByTagName("orgcityname").childNodes[0].nodeValue+"-"+xml[i].getElementsByTagName("descityname").childNodes[0].nodeValue+"</td>");
// html_l.append("<td>"+xml[i].getElementsByTagName("lowesttcprice").childNodes[0].nodeValue+"</td>");
html_l.append("<td>"+xmlDom.selectSingleNode("flightline/line["+i+"]/qrydate").text+"</td>");
html_l.append("<td>"+xmlDom.selectSingleNode("flightline/line["+i+"]/orgcityname").text+"-"+xmlDom.selectSingleNode("flightline/line["+i+"]/descityname").text+"</td>");
html_l.append("<td>"+xmlDom.selectSingleNode("flightline/line["+i+"]/lowesttcprice").text+"</td>");
}
else
{
html_r.append("<td>"+xmlDom.selectSingleNode("flightline/line["+i+"]/qrydate").text+"</td>");
html_r.append("<td>"+xmlDom.selectSingleNode("flightline/line["+i+"]/orgcityname").text+"-"+xmlDom.selectSingleNode("flightline/line["+i+"]/descityname").text+"</td>");
html_r.append("<td>"+xmlDom.selectSingleNode("flightline/line["+i+"]/lowesttcprice").text+"</td>");
}
}
//alert(html_l.toString("")+html_r.toString(""));
document.getElementByID("city_53").innerHtml = html_l.toString("")+html_r.toString("");
}
window.status = "完毕!";
}else{
window.status = "数据加载失败!";
}
}else{
window.status = "请求中...";
}
}
}function getComHtml()
{
var xmlDom = new XmlDom();
xmlDom.async = "false";
//xmlDom.resolveExternals = "false";
//xmlDom.setProperty("ServerHTTPRequest",true);
var ulr ="http://jipiao1.lezhu.org.cn/data/flightline.asp?top=10&orgcityid=53&time="+new Date().toLocaleTimeString();
xmlDom.load(ulr);
var items = xmlDom.selectNodes("flightline/line");
var html_l = new StringBuilder();
var html_r = new StringBuilder();
for(var i=0;i<items.length;i++)
{
if(i < 5)
{
html_l.append("<td>"+items(i).selectSingleNode("qrydate").Text+"</td>");
}
else
{
html_r.append("<td>"+items(i).selectSingleNode("qrydate").Text+"</td>");
}
}
alert(html_l.toString()+html_r.toString());
}function XmlDom()
{
if(window.ActiveXObject)
{
var arrSignatures = ["MSXML2.DOMDocument.5.0","MSXML.DOMDocument.4.0","MSXML.DOMDocument.3.0","MSXML.DOMDocument","Microsoft.XmlDom"];
for(var i =0;i<arrSignatures.length;i++)
{
try{
var oXmlDom = new ActiveXObject(arrSignatures[i]);
return oXmlDom;
}catch(oError)
{
}
}
throw new Error("您的系统并不支持MSXML!");
}
else if(document.implementation && document.implementation.createDocument)
{
var xmlDom = document.implementation.createDocument("","",null);
return xmlDom;
}
else
{
throw new Error("您的浏览器并不支持 XmlDom 对象!");
}
}function StringBuilder()
{
this._stringArray = new Array();
}
StringBuilder.prototype.append = function(str)
{
this._stringArray.push(str);
}StringBuilder.prototype.toString = function(joinGap)
{
return this._stringArray.join(joinGap);
}
2.跟上面代码大多一样,只不过xmldom对象使用load的方法的时候直接把url当参数,略过。
3.后台获取
StringBuilder sbXml = new StringBuilder();
Context.Response.ClearContent();
Context.Response.ContentType = "text/xml";
using (XmlTextReader xr = new XmlTextReader("http://jipiao1.lezhu.org.cn/data/flightline.asp?top=" + top + "&orgcityid=" + orgcityid))
{
while (xr.Read())
{
sbXml.Append(xr.ReadInnerXml());
}
}
Context.Response.Write(sbXml.ToString());
Context.Response.End();第一种,IE获取内容为空,第二种ff里面报组件返回错误代码0x80004005等等,第三种后台获取的内容为空报错。
总之一句话,什么结果都没有,对js的不太熟悉,让我此时不知道从哪儿下手了,各位大侠不吝赐教吧!在下除了感谢敬佩外只剩下实实在在的分了。
private XmlDocument GetXml(string http)
{
string url = http;
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
HttpWebResponse res = (HttpWebResponse)req.GetResponse();
XmlDocument doc = new XmlDocument();
doc.Load(res.GetResponseStream());
return doc; }
你这里的内容格式不是text/xml
你自己看下。你的是text/html
所以出现了空白什么的。。
应该改成text/xml 就可以了
function RemoveFans(FansId) {
$.jmsajax({
url: window.UserServiceUrl,//WS接口地址
method: "RemoveFans",//接口提供的方法
data: {
'FansId': FansId//参数名
},
success: function(count) {//count就是执行成功后返回的数据 if (count == 0) {
alert("0: 操作失败,未知错误");
}
if (count == 1) {
alert("1:操作成功 ");
LoadData();
}
if (count == 2) {
alert("2:操作失败, 两个用户不存在关注关系,不能操作");
}
} })
}
不过通过JQUERY 取得的数据时JSON 和LIST形式的!