我正在尝试在网站上运行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>
任何帮助将不胜感激!谢谢!
答案 0 :(得分:0)
正如其他人所提到的,getJSON调用接受一个函数,用于从服务器成功返回数据。
然而,Trove服务器位于另一个域上,因此您必须通过包含“callback =?”来使用JSONP。在您网址的某处。
或者您可以在https://github.com/chrrrisw/trove-js使用库来抽象所有这些。
免责声明:我是图书馆的作者。