0

我正在尝试使用此 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 钥匙测试它,当我只是访问 url 时它工作正常。我还需要做些什么才能使其正常工作吗?

当您在 url 中有一个 api 密钥时,这是您从 url 获得的内容:

{“正文”:“因为神爱世人,甚至将他的独生子赐给他们,叫一切信他的,不至灭亡,反得永生。因为神差他的儿子来到世上,不是要定世人的罪;而是叫世人借着他得救。信他的,不被定罪;不信的,罪已经定了,因为他不信神独生子的名。”}

4

3 回答 3

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); }
});

那对你有用吗?

于 2010-05-18T22:21:35.647 回答
1

key=MYAPIKEY=John+3:16-18

参数值是否已经经过 URL 编码?看起来不像。=和是URL+中的保留字符:

试试这个:

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

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

于 2010-05-18T22:24:24.597 回答
0

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

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

于 2011-01-14T17:03:28.663 回答