gpt4 book ai didi

javascript - 无法使用ajax从xml文件中获取数据对象

转载 作者:行者123 更新时间:2023-12-03 08:24:15 25 4
gpt4 key购买 nike

我不知道我做错了什么。它在另一个页面上对我有用,但对这个页面(capitalbikeshare)不起作用。 “data”变量确实包含一个对象,但是当我尝试打印长度或特定项目时,它给我一条错误消息,指出它无法读取 null“feed”的属性。我究竟做错了什么?

$.ajax({ 
url:'http://ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=10&callback=?&q=' + encodeURIComponent('https://www.capitalbikeshare.com/data/stations/bikeStations.xml'),
dataType : 'jsonp',
success: function (data) {
var entry = data.responseData.feed.entries;
var entry_length = entry.length;
alert("success"+entry_length);
},
error: function(jqXHR, textStatus, errorThrown) {
alert("fail");
}
});

这是 XML 文件的一个小示例。

 <stations lastUpdate="1447107709602" version="2.0">
<script id="tinyhippos-injected"/>
<station>
<id>1</id>
<name>20th & Bell St</name>
<terminalName>31000</terminalName>
<lastCommWithServer>1447107692939</lastCommWithServer>
<lat>38.8561</lat>
<long>-77.0512</long>
<installed>true</installed>
<locked>false</locked>
<installDate>0</installDate>
<removalDate/>
<temporary>false</temporary>
<public>true</public>
<nbBikes>5</nbBikes>
<nbEmptyDocks>5</nbEmptyDocks>
<latestUpdateTime>1447106879008</latestUpdateTime>
</station>
</stations>

最佳答案

该 Web 服务旨在解析 rss 提要而不是任意 XML。

正确的 AJAX 调用

$.ajax({ 
url: 'http://ajax.googleapis.com/ajax/services/feed/load',
dataType : 'jsonp',
data: {
v: "1.0",
num: 10,
q: 'https://www.capitalbikeshare.com/data/stations/bikeStations.xml'
},
success: function (data) {
console.log(data);
},
error: function(jqXHR, textStatus, errorThrown) {
console.error(textStatus);
}
});

回应

{
"responseData": null,
"responseDetails": "Feed could not be loaded.",
"responseStatus": 400
}

通过尝试data.responseData.feed.entries,如果responseDatanull,您显然无法访问feed >.

如果您使用不同的网络服务,例如 cors.io您可以加载 xml,然后使用 jQuery 访问字段,而不是加载 JSON。

$.ajax({
url: 'http://cors.io',
dataType : 'xml',
data: {
u: 'https://www.capitalbikeshare.com/data/stations/bikeStations.xml'
},
success: function (data) {
console.log(data);
$(data).find(">stations>station>name").each(function(){
console.log($(this).text());
});
},
error: function(jqXHR, textStatus, errorThrown) {
console.error(textStatus);
}
});

关于javascript - 无法使用ajax从xml文件中获取数据对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33619343/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com