【发布时间】:2015-05-28 21:51:17
【问题描述】:
我在检索要在小部件中使用的 JSON 提要时遇到问题。
我已经用谷歌搜索了它,只是似乎让自己更加困惑。
我有这个代码
function insertReply(content) {
document.getElementById('holder').innerHTML = content.result;
}
// create script element
var script = document.createElement('script');
// assing src with callback name
script.src = 'https://www.googleapis.com/freebase/v1/text/en/bob_dylan?callback=insertReply';
// insert script to document and load content
document.body.appendChild(script);
来自这篇文章 - Get JSON data from external URL and display it in a div as plain text
效果很好。但是,如果我更改 URL,我不会在控制台中得到响应和错误。
新网址:http://finance.google.com/finance/info?client=ig&q=NASDAQ:GOOG
为什么一个有效而另一个无效?
编辑@Amit
Amit 对不起,我对 JQuery 和 javascript 很陌生。你把这些放在哪里?我有
<!DOCTYPE html>
<html>
<head>
<title>Widget Holder</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
</style>
</head>
<body>
<form runat="server">
<div id="holder"></div>
</form>
<script type="text/javascript">
$().ready(function () {
$.get("http://finance.google.com/finance/info?client=ig&q=NASDAQ:GOOG", function (data) {
debugger;
$("#holder").html(data);
});
});
</script>
</body>
</html>
但还是会出现这个错误
跨域请求被阻止:同源策略不允许读取位于http://finance.google.com/finance/info?client=ig&q=NASDAQ:GOOG 的远程资源。 (原因:CORS 标头“Access-Control-Allow-Origin”缺失)。
【问题讨论】:
-
// [ {“id”:“304466804484872”,“t”:“GOOG”,“e”:“纳斯达克”,“l”:“539.79” ,"l_fix" : "539.79" ,"l_cur" : "539.79" ,"s": "2" ,"ltt":"美国东部夏令时间下午 5:04" ,"lt" : "美国东部夏令时间 5 月 27 日下午 5:04" , “lt_dts”:“2015-05-27T17:04:30Z”,“c”:“+7.47”,“c_fix”:“7.47”,“cp”:“1.40”,“cp_fix”:“1.40”, ccol":"chg","pcls_fix":"532.32","el":"537.01","el_fix":"537.01","el_cur":"537.01","elt":"5 月 27 日下午 6:40美国东部时间”,“ec”:“-2.78”,“ec_fix”:“-2.78”,“ecp”:“-0.52”,“ecp_fix”:“-0.52”,“eccol”:“chr”,“div” : "" ,"yld" : "" } ] 这是一个有效的
json吗? -
什么会使它无效? //?
-
但它附加了
//。这可能是造成问题的原因吗? -
如果 JSON 无效,还有其他方法可以读取此提要吗?
-
请看下面我的答案。浏览器正在加载
json。