jQuery getJson返回null

时间:2010-05-18 22:17:35

标签: jquery json api null getjson

我正在尝试使用这个api,它允许你引用一个确切的文本,但getJson似乎没有工作,它只是返回null。

$.getJSON('http://api.biblia.com/v1/bible/content/KJV.json?key=MYAPIKEY=John+3:16-18&style=bibleTextOnly', function(data) {
  alert(data);
});

我刚拿出钥匙,我一直用真正的api键测试它,当我访问网址时它工作正常。还有什么我需要做才能让它发挥作用吗?

当您在网址中有api密钥时,这是您从网址获得的内容:

{“text”:“因为神爱世人,甚至将他的独生子赐给他们,叫一切信他的,不至灭亡,反得永生。因为神差遣他的儿子进入世界,不定罪。世界;但通过他的世界可能得救了。信他的人不受谴责;但不相信的人已被定罪,因为他不相信上帝独生子的名。“}

3 个答案:

答案 0 :(得分:1)

尝试这样做,仅用于测试:

$.ajax({
  url: 'http://api.biblia.com/v1/bible/content/KJV.json?key=MYAPIKEY=John+3:16-18&style=bibleTextOnly',
  dataType: 'json',
  success: function(data) { alert(data); }
});

这对你有用吗?

答案 1 :(得分:1)

  

key=MYAPIKEY=John+3:16-18

参数值是否已经过URL编码?看起来不是。网址中的=+:reserved characters

请改为尝试:

  

key=MYAPIKEY%3DJohn%2B3%3A16-18

要在JS中自己执行此操作,请将MYAPIKEY=John+3:16-18传递给encodeURIComponent()并在查询字符串中使用其返回值。

答案 2 :(得分:0)

我很确定您遇到了跨域请求限制。您最好的选择是使用JSONP而不是JSON(假设api.biblia.com支持JSONP):

http://api.jquery.com/jQuery.ajax(参见该页面上对JSONP数据类型的讨论)