我是计算机科学大学的第一年学生,作为一个辅助项目,我正在努力创建一个使用Google趋势数据的小网站。我想只在可能的情况下使用JQuery / JavaScript。
我正在尝试获取Google趋势在您访问该网址时提供的JSON。我打算稍后使用该数据来确定每个术语(name1和name2)的平均值和当前值。我在MAMP localhost服务器上运行此代码。我的预期结果就是您直接访问它时看到的JSON。然而,我在浏览器控制台中得到的响应是:
“XMLHttpRequest无法加载[URL]。请求的资源上没有”Access-Control-Allow-Origin“标头。因此不允许原点”http://localhost:8888“访问。”
是否可以获取此数据?如果是这样的话?如果我理解错误,Google会禁止检索该资源。如果无法获得该数据,那么可能的解决方法是什么?
$(function() {
$.ajax({
url: 'http://www.google.com/trends/fetchComponent?q='+name1+','+name2+'&cid=TIMESERIES_GRAPH_0&export=3',
type: 'GET',
dataType: 'json',
//headers: '[Does something go here?]',
success: function(data, status, xhr)
{
console.log(data);
},
error: function(xhr, status, error)
{
console.log("Error: " + status + " " + error);
}
});
});
P.S。对不起任何违法行为......我真的不知道自己在做什么。
答案 0 :(得分:2)
我刚刚使用了您的给定网址
https://www.google.com/trends/fetchComponent?q=asdf,qwerty&cid=TIMESERIES_GRAPH_0&export=3
将q = asdf,qwerty分别替换为name1和name2。
这将返回json数据
正如您在运行代码段后所看到的那样
google.load('visualization', '1');
google.setOnLoadCallback(queryInit);
function queryInit() {
var url = 'https://www.google.com/trends/fetchComponent?q=asdf,qwerty&cid=TIMESERIES_GRAPH_0&export=3';
var query = new google.visualization.Query(url)
query.send(handleQueryResponse);
}
function handleQueryResponse(response) {
$('#divdata').text(JSON.stringify(response))
}
<script type="text/javascript" src="http://code.jquery.com/jquery-1.12.2.js"></script>
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<div id="divdata">
</div>