我正在尝试使用这个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”:“因为神爱世人,甚至将他的独生子赐给他们,叫一切信他的,不至灭亡,反得永生。因为神差遣他的儿子进入世界,不定罪。世界;但通过他的世界可能得救了。信他的人不受谴责;但不相信的人已被定罪,因为他不相信上帝独生子的名。“}
答案 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数据类型的讨论)