【问题标题】:How to get json response from RESTFUL webservice [duplicate]如何从 RESTFUL Web 服务获取 json 响应 [重复]
【发布时间】:2015-03-14 19:37:47
【问题描述】:

我想提醒来自这个 url http://finance.yahoo.com/webservice/v1/symbols/allcurrencies/quote?format=json&&callback= 的 webservice JSON 响应? ,如何做到这一点,任何想法?

我在下面尝试过,但它根本不起作用。

 $(document).ready(function () {

    var b = "http://finance.yahoo.com/webservice/v1/symbols/allcurrencies/quote?format=json&&callback=?";
    //var b= "http://finance.yahoo.com/connection/currency-converter-cache?date=20150307";   // or this url also
    $.getJSON(b, function (e) {
    alert(e);
 });

}) 

FIDDLE


更新:浏览器控制台上显示错误

XMLHttpRequest cannot load http://finance.yahoo.com/webservice/v1/symbols/allcurrencies/quote?format=json&&callback=?. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://fiddle.jshell.net' is therefore not allowed access.

【问题讨论】:

  • 你的 fiddle 只是一个指向 jsfiddle 主页的链接。至于您的 Yahoo 链接,它正在返回 JSON。我可以在您的代码中看到的唯一错误可能是 $.getJSON 函数可能不适用于 JSONP,但我必须对此进行更多研究
  • 我认为你不会有任何运气,因为雅虎似乎不支持JSONP
  • @JasonSperske 我已经更新了我的问题。请提供任何获取 json 响应的提示
  • 这意味着您不能从任何其他来源请求finance.yahoo.com。一旦解决方案可能通过 yql,它就可以解决跨组织问题,或者您可以从服务器端请求尝试。
  • 解决此问题的一种常见方法是在服务器端代码中发出 Web 请求,使其不是脚本,因此不受同源策略的约束。然后,您将其公开为可以从脚本调用的服务,因为它位于您自己的域中。

标签: javascript jquery json web-services yahoo-finance


【解决方案1】:

可能有一种方法可以通过 YQL 使用 JSONP 访问 Yahoo API,但我认为使用其他服务会更好。

雅虎似乎不支持该 API。看到这个SO question。

我在 google 上搜索了一个汇率 json api,我发现 fixer.io 正在工作。请参阅此fiddle 及以下内容。


更新 14.03.2015 21:09 (UTC)

请看一下这个jsFiddle,它是一个访问Yahoo API 的演示。我必须将 env 添加到所有数据库才能访问演示的新闻提要。您可能可以更改 YQL 以访问您想要的数据。

YQL 控制台非常有助于查看可用的数据。您可以访问控制台here。

代码来自这个page。初始代码不起作用,因为它找不到search.news 表。可能是因为 env 属性,但我需要检查一下。

$(function() {
    $.ajax({
        url: "http://api.fixer.io/latest",
        dataType: "jsonp",
        jsonp: "callback",
        success: function(response) {
            $(".json").text(JSON.stringify(response, null,2));
        }
    });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<pre class="json"></pre>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多