2010-05-18 161 views
0

我试图使用这个API,可以让你引用一个确切的文本,但getJson似乎并没有工作,它只是返回null。jQuery 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密钥测试它,当我刚刚访问的URL,它工作正常。还有什么我需要做的,以使其工作?

这是你从URL得到什么,当你在URL的API密钥:

{“文”:“神爱世人,甚至将他给他的独生子,叫一切信在他里面不要灭亡,而要永生;因为上帝没有派他的儿子进入世界来谴责世界,而是通过他的世界得以拯救;信他的人不被定罪;但不信的人是。已经定了,因为他没有在上帝的独生子的名字相信“}

回答

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

key=MYAPIKEY=John+3:16-18

是该参数值已经URL编码?看起来不像。在URL中,=,+:reserved characters

试试这个:

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

要在JS自己做,通过MYAPIKEY=John+3:16-18通过encodeURIComponent(),并在查询字符串中使用它的返回值。

0

我敢肯定你正在运行跨域请求限制。您最好的选择是使用JSONP代替JSON(假设api.biblia.com支持JSONP):

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