从Web API中提取和读取JSON数据
我正在做的是提供一行术语的即时定义,也许一行回答几个逻辑问题。 假设用户输入“JavaScript”并且JavaScript访问urlhttps://api.duckduckgo.com/?q=JavaScript&format=json&pretty=1 ,获取项目“定义”(查看API链接以了解,定义是在第一行本身)并显示其定义值并使用所需数据提醒用户。
无论如何我的代码目前是:
Hi
请注意,我没有输入所需的JavaScript / jQuery代码,因为我对此感到困惑。 谢谢 :)
因为这是跨域请求,所以只能使用代理或JSONP执行此操作。 幸运的是, DuckDuckGo支持JSONP ,因此您只需要确保向URL请求添加回调参数,如:
https://api.duckduckgo.com/?q=JavaScript&format=json&pretty=1&callback=jsonp
…或者使用jQuery的ajax方法使用适当的jsonp参数,例如:
$('#ddgAPI').on('keyup', function(e) { if (e.which === '13') { $.ajax({ type: 'GET', url: 'https://api.duckduckgo.com/', data: { q: $(this).val(), format: 'json', pretty: 1 }, jsonpCallback: 'jsonp', dataType: 'jsonp' }).then(function (data) { console.log(data); }); } });
使用jQuery.ajax()与远程服务进行通信。 url
应该是https://api.duckduckgo.com
。 type
应该是GET
。 data
应该是:
var data = { q:'JavaScript', format:'json', pretty:1 };
然后jQuery将所有内容编译成AJAX请求,并将其发送到服务器。 将函数传递为success
以便您可以对结果执行某些操作:
$.ajax({ url: "https://api.duckduckgo.com", type: "GET", data: { q:'JavaScript', format:'json', pretty:1 }, success: function(data) { $('#output').html(data); } });