如何使用JavaScript从URL获取JSON
How to fetch JSON from a URL using JavaScript?
我在我的一个HTML文件中使用以下代码
var queryURL = encodeURI(yahooUrl + loc + appId);
alert(queryURL);
$.getJSON(queryURL, function(data){
alert('inside getJSON')
alert(data);
var items = [];
$.each(data, function(key, value){
items.push('<li id="' + key + '">' + value + '</li>');
});
$('<ul/>', {
'class': 'my-new-list',
html: items.join('')
}).appendTo('body');
});`
其中queryURL
是一个大查询,如果我从浏览器的地址栏加载,我得到一个包含JSON对象的文件。但是下面的代码不起作用,整个JSON对象显示在Firefox的错误控制台中,错误为"Invalid Label"。我在查询字符串的末尾添加了&callback=?
,正如在SO的几个答案中提到的那样。
谁能告诉我哪里做错了?
Edit: for
queryURL = "http://where.yahooapis.com/geocode?location=107,South%20Market,San%20Jose,San%20Fransico,Leusina,USA,&flags=J&appid=dj0yJmk9SUk0NkdORm9qM2FyJmQ9WVdrOU1tVnFUVzlVTm5NbWNHbzlORFl4TnpZME5UWXkmcz1jb25zdW1lcnNlY3JldCZ4PWE1&callback=?"
我得到以下错误:
Error: invalid label
Source File: http://where.yahooapis.com/geocode?location=107,South%20Market,San%20Jose,San%20Fransico,Leusina,USA,&flags=J&appid=dj0yJmk9SUk0NkdORm9qM2FyJmQ9WVdrOU1tVnFUVzlVTm5NbWNHbzlORFl4TnpZME5UWXkmcz1jb25zdW1lcnNlY3JldCZ4PWE1&callback=jQuery16404719878257064011_1316606312366&_=1316608283354
Line: 1, Column: 1
源代码:{"ResultSet":{"version":"1.0","Error":0,"ErrorMessage":"No error","Locale":"us_US","Quality":87,"Found":1,"Results":[{"quality":39,"latitude":"37.336849","longitude":"-121.847710","offsetlat":"37.338470","offsetlon":"-121.885788","radius":34800,"name":"","line1":"","line2":"San Jose, CA","line3":"","line4":"United States","house":"","street":"","xstreet":"","unittype":"","unit":"","postal":"","neighborhood":"","city":"San Jose","county":"Santa Clara County","state":"California","country":"United States","countrycode":"US","statecode":"CA","countycode":"","uzip":"","hash":"","woeid":2488042,"woetype":7}]}}
这可能是因为jQuery自动切换到使用JSONP(因为它是一个跨域请求),而雅虎显然不使用JSONP,而是使用常规JSON。你试过用老的$.ajax()
和dataType:"JSON"
吗?
:
$.ajax({
url: queryURL,
dataType: "JSON",
success: function(data){
alert('inside getJSON')
alert(data);
var items = [];
$.each(data, function(key, value){
items.push('<li id="' + key + '">' + value + '</li>');
});
$('<ul/>', {
'class': 'my-new-list',
html: items.join('')
}).appendTo('body');
}
});
让我在这里特别好,因为我有一个糟糕的一天:工作示例
相关文章:
- 如何使用 Node JS 获取 JSON 嵌套数组值
- 使用Javascript/JQuery获取JSON GET数据
- 在jQuery中获取JSON
- 如何使用jQuery按键搜索和获取json行数据
- 如何使用jquery获取Json的节点
- 通过字符串获取JSON对象
- 通过Azure存储以HTML形式获取JSON文件
- 获取JSON并使用Javascript解析为字符串
- 如何在angular中获取json对象的名称
- 如何使用angular获取json对象的名称
- 如何使用Ajax JQuery.ech()获取JSON值
- 可以't通过从googlemapapi获取json值
- 获取json结果的身份验证问题
- Javascript:获取 JSON 中的值计数
- 按服务获取JSON数据
- 如何使用javascript获取json元素
- 从javascript文件中获取JSON,并使用NodeJS在路由文件中显示
- 如何从给定的代码中获取JSON对象
- 获取 JSON 数据将数组项添加到变量
- 如何从具有动态可观察属性的淘汰对象中获取 JSON 字符串