Trove API搜索全部

时间:2015-10-11 09:12:03

标签: jquery api

我正在尝试在网站上运行Trove API,搜索Trove上的所有内容,并根据用户放入搜索栏的内容显示一个结果。我对此非常新,我已经编写了一些代码来搜索所有内容,但它似乎没有用。这是我的Javascript代码:

    $(document).ready(function () {

        var storedData = new Array();

        function logAllUrls() {
            var index = Math.floor(Math.random() * storedData.length);
            console.log(storedData[index]);
            storedData = new Array();
        }

        var key = "my key";    

        $("#form").submit(function(event) {
            event.preventDefault();

            var query = "&q=" + $('#input').val();
            var url = "http://api.trove.nla.gov.au/result?key=";
            var zone = "&zone=all";
            var n = "&n=5";
            var encoding = "&encoding=json";

            url += key + zone + n + encoding + query; 

            $.getJSON(url, response);
        });
    });

我将它链接到HTML页面上的表单。

每当我输入搜索词并单击搜索时,我会在Chrome控制台中获得此响应,

Uncaught ReferenceError: response is not defined(anonymous function) 
(anonymous function)    @   api.js:30
n.event.dispatch    @   jquery-2.1.4.min.js:3
n.event.add.r.handle    @   jquery-2.1.4.min.js:3

这些是我在HTML中的链接:

<script type="text/javascript" src="http://code.jquery.com/jquery-2.1.4.min.js"></script>
<script type="text/javascript" src="api.js"></script>

任何帮助将不胜感激!谢谢!

1 个答案:

答案 0 :(得分:0)

正如其他人所提到的,getJSON调用接受一个函数,用于从服务器成功返回数据。

然而,Trove服务器位于另一个域上,因此您必须通过包含“callback =?”来使用JSONP。在您网址的某处。

或者您可以在https://github.com/chrrrisw/trove-js使用库来抽象所有这些。

免责声明:我是图书馆的作者。