【问题标题】:How to get data from json api url?如何从 json api url 获取数据?
【发布时间】:2016-09-01 12:01:44
【问题描述】:

我尝试使用 jQuery.getJSON() 获取数据,但它不起作用。

我想从这个 url 获取数据: http://www.posta.com.tr/api/LiveScore/LeagueStageFixture?TournamentID=1&includeFixture=1

这是我尝试过的:

JS

 $.getJSON("http://www.posta.com.tr/api/LiveScore/LeagueStageFixture?TournamentID=1&includeFixture=1", function(data) {
    $('#data').text(data.result);
});

HTML

<div id="data"></div>

如何获取数据并将其显示在 div 中?

【问题讨论】:

  • 您拥有域名 posta.com 吗?您是否在浏览器上检查了网络控制台是否有错误?
  • 不,我不拥有它。
  • 您的浏览器可能阻止了跨域调用。检查您的错误控制台
  • XMLHttpRequest 无法加载 posta.com.tr/api/LiveScore/…。请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,Origin 'localhost' 不允许访问。我收到此错误消息.. 如何解决此错误?
  • 您需要对该服务进行后端调用并将其传递给您的前端。此直接调用不起作用

标签: javascript jquery json api


【解决方案1】:

请试试这个。

$.ajax({
  url: "http://www.posta.com.tr/api/LiveScore/LeagueStageFixture",
  type: "get", //send it through get method
  headers:{ 
    "Access-Control-Allow-Origin": "*" 
    },
  data:{
        TournamentID: 1,
        includeFixture: 1
    },
  success: function(response) {
    //Do Something
  },
  error: function(xhr) {
    //Do Something to handle error
  }
});

【讨论】:

  • 您使用的是哪种浏览器?所有浏览器都有同样的问题?
  • @Can no ajax 调用此服务器将直接从您的前端工作。谷歌“Access-Control-Allow-Origin”并了解更多信息。
  • 我使用 chrome,它不适用于 jquery,因为域阻止了跨域调用。我会用 PHP 试试。谢谢大家!
  • 您好,请尝试更新后的代码。我添加了标题。告诉我它是否有效。
  • 或者请从运行菜单(windows)试试这个:chrome.exe --user-data-dir="C:/Chrome dev session" --disable-web-security
【解决方案2】:

它现在适用于 php。问题是域阻止了来自不同主机的连接。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-13
    • 1970-01-01
    • 2022-12-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多