将JSON从服务器端(.NET)传递到客户端(jQuery)

我正在尝试从以下URL加载JSON:

https://acs.leagueoflegends.com/v1/stats/game/TRLH3/1001090170/timeline?gameHash=a23ccbe7928a63a3

我的代码如下所示:

var baseUrl = "https://acs.leagueoflegends.com/v1/stats/game/TRLH3/1001440043/timeline?gameHash=4725b07311676885"; var json = $.getJSON(baseUrl, function(data){ }); $("#output").text(JSON.stringify(json)); 

我的输出读到:

 {"readyState":1} 

的jsfiddle:

https://jsfiddle.net/6Lwjpjmo/

编辑 :显然,由于以下两个原因,无法从该URL检索JSON:

  1. Access-Control-Allow-Origin:null
  2. 通过Proxy Requeste调用JSON以在正文中加载JSON。

我已经可以通过.NET检索JSON服务器端,但需要将某些变量传递给客户端以在jQuery中进行操作。 我该怎么做?

您不需要这么做,服务器确实接受JSONP 。 只需添加callback=? 你的url参数,它工作正常。

 baseUrl = "https://acs.leagueoflegends.com/v1/stats/game/TRLH3/1001440043/timeline?gameHash=4725b07311676885&callback=?"; 

你得到的“JSON”是不正确的

 SyntaxError: Unexpected token ':'. Parse error. (anonymous function)timeline:1 

编辑

看来服务器也没有返回JSONP,使用代理服务可以使它工作:

 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=?'; 

它是一个异步函数。 而且,您只接收XHR对象。 所以,把它放在函数中:

 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.stringify(json)); }); 

这应该工作。

您需要使用像Proxy PHP文件这样的服务器端脚本 ,它可以读取内容并正确执行。

Proxy.php

  

并称之为:

 url: "proxy.php?url=https://acs.leagueoflegends.com/v1/stats/game/TRLH3/1001440043/timeline?gameHash=4725b07311676885"