J’essaie de charger JSON à partir de l’URL ci-dessous:
https://acs.leagueoflegends.com/v1/stats/game/TRLH3/1001090170/timeline?gameHash=a23ccbe7928a63a3
Mon code ressemble à ceci:
var baseUrl = "https://acs.leagueoflegends.com/v1/stats/game/TRLH3/1001440043/timeline?gameHash=4725b07311676885"; var json = $.getJSON(baseUrl, function(data){ }); $("#output").text(JSON.ssortingngify(json));
Et ma sortie lit ceci:
{"readyState":1}
Jsfiddle:
https://jsfiddle.net/6Lwjpjmo/
EDIT : Apparemment, il n’est pas possible de récupérer le JSON à partir de cette URL pour deux raisons:
Access-Control-Allow-Origin:null
Je peux déjà récupérer le côté serveur JSON via .NET, mais je dois transmettre certaines variables au côté client pour pouvoir les manipuler dans jQuery. Comment puis-je m’y prendre?
Vous n’avez pas besoin de faire cela de manière difficile, le serveur accepte JSONP
. Il suffit d’append le callback=?
paramètre à votre url et cela fonctionne bien.
baseUrl = "https://acs.leagueoflegends.com/v1/stats/game/TRLH3/1001440043/timeline?gameHash=4725b07311676885&callback=?";
Le “JSON” que vous récupérez est malformé cependant
SyntaxError: Unexpected token ':'. Parse error. (anonymous function)timeline:1
Il semble que le serveur ne retourne pas non plus JSONP. En utilisant un service proxy, vous pouvez le faire fonctionner:
var proxyUrl = 'https://jsonp.afeld.me/'; var serviceUrl = "https://acs.leagueoflegends.com/v1/stats/game/TRLH3/1001440043/timeline?gameHash=4725b07311676885"; var url = proxyUrl + '?url=' + encodeURIComponent(serviceUrl) + '&callback=?';
C’est une fonction asynchrone. De plus, vous ne recevez que l’object XHR. Alors, mettez-le dans la fonction:
var baseUrl = "https://acs.leagueoflegends.com/v1/stats/game/TRLH3/1001440043/timeline?gameHash=4725b07311676885"; $.getJSON(baseUrl, function(data) { json = JSON.parse(data); $("#output").text(JSON.ssortingngify(json)); });
Cela devrait marcher.
Vous devez utiliser un script côté serveur, tel que le fichier proxy PHP, qui lit le contenu et l’exécute correctement.
Proxy.php
:
Et appelez ça comme ça:
url: "proxy.php?url=https://acs.leagueoflegends.com/v1/stats/game/TRLH3/1001440043/timeline?gameHash=4725b07311676885"