JQuery AJAX标题和Google趋势

时间:2016-06-18 04:02:01

标签: javascript jquery json ajax

我是计算机科学大学的第一年学生,作为一个辅助项目,我正在努力创建一个使用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。对不起任何违法行为......我真的不知道自己在做什么。

1 个答案:

答案 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>