【发布时间】: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);
});
})
更新:浏览器控制台上显示错误
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