2016-07-30 85 views
2

我想创建一个ajax请求并解析JSON响应。 我曾尝试与此代码,但没有运气这样做使用javascript从JSON网址解析数据

var url = 'http://api.steampowered.com/ISteamUser \ 
      /ResolveVanityURL/v0001/?key=private_key&vanityurl=zacktm' 
$.getJSON(url, function(data) { 
    alert(data); 
}); 

,我得到的回应是:

{ 
"response": { 
    "steamid": "76561198181548891", 
    "success": 1 
    } 
} 

输出我想:76561198181548891

+2

如果您检查浏览器的控制台,我想你会看到有关无法错误制作一个跨域Ajax请求。 – nnnnnn

回答

2

发展一个临时的解决办法是使用crossorigin.me

代码如下:

var url = 'http://crossorigin.me/http://api.steampowered.com/ISteamUser/ResolveVanityURL/v0001/?key=0E385DC97C8423D8DD9CD11944187F38&vanityurl=zacktm' 
$.getJSON(url, function(data) { 
    alert(data.response.steamid); 
}); 
1

我看到CORS启用在你的API中。

一个临时的解决办法是禁用浏览器上的CORS过滤器,但要获得一个永久的解决方案,您将需要添加您的后端REST API的CORS头。

一旦做到这一点,你可以尝试以下方法:

$.get('http://api.steampowered.com/ISteamUser/ResolveVanityURL/v0001/?key=0E385DC97C8423D8DD9CD11944187F38&vanityurl=zacktm', function(data) { 
    alert(data.response.steamid); 
}); 

data.response.steamid会给你steamid

+0

该警报甚至没有运行 – Amromtm

+0

@Amromtm你有没有添加JQuery?当你试图运行它时,你也可以检查你的浏览器控制台吗? –

+0

我看到CORS头文件存在于您的API中。确保CORS允许你的API访问json –

0
var url = 'http://api.steampowered.com/ISteamUser \ 
      /ResolveVanityURL/v0001/?key=private_key&vanityurl=zacktm'; 
$.get(url, function(data){ 
    var reply = $.parseJSON(data); 
    // Or plain JavaScript 
    // var reply= JSON.parse(data); 
    alert(reply.reponse.steamid); 
}); 

请注意,你不能与本地主机使用XMLHttpRequest到外部服务器,如果服务器允许来源:本地主机没有设置

1

1.

var url = 'https://itunes.apple.com/in/rss/topalbums/limit=10/json'; 

2.

$.getJSON(url, function(data) { 

     alert(data.feed.entry[0]["im:name"].label); 
    });