2010-05-18 3 views
0

Я пытаюсь использовать этот api, который позволяет вам ссылаться на точный текст, но getJson, похоже, не работает, он просто возвращает null.jQuery getJson return null

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

Я просто взял ключ, я уже тестировал его с моим реальным ключом апи, и она отлично работает, когда я просто посетить URL. есть ли что-то еще, что мне нужно сделать, чтобы заставить его работать?

Это то, что вы получаете от URL, когда у вас есть ключ API в URL:

{ «текст»: "Ибо так возлюбил Бог мир, что отдал Сына Своего Единородного, дабы всякий верующий в нем не должно погибнуть, но иметь жизнь вечную. Ибо Бог не послал Сына Своего в мир, чтобы осудить мир, но чтобы мир через него спасся. Верующий в Него не осуждается, а кто не верует, . уже осужден, потому что не уверовал во имя Единородного Сына Божия "}

ответ

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 в кодировке? Похоже, нет. =, + и :: reserved characters по URL-адресу.

Попробуйте вместо этого:

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

Чтобы сделать это самостоятельно в JS, пройти через MYAPIKEY=John+3:16-18encodeURIComponent() и использовать возвращаемое значение в строке запроса.

0

Я уверен, что вы столкнулись с ограничениями междоменного запроса. Лучше всего использовать JSONP вместо JSON (при условии, что api.biblia.com поддерживает JSONP):

http://api.jquery.com/jQuery.ajax (см. Обсуждение типа данных JSONP на этой странице)