jQuery getJson возвращает ноль - PullRequest
0 голосов
/ 19 мая 2010

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

$.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:

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

Ответы [ 3 ]

1 голос
/ 19 мая 2010

key=MYAPIKEY=John+3:16-18

Значение параметра уже закодировано в URL? Похоже, нет. =, + и : являются зарезервированными символами в URL.

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

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

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

1 голос
/ 19 мая 2010

Попробуйте вместо этого, просто для тестирования:

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

Это работает для вас?

0 голосов
/ 14 января 2011

Я почти уверен, что вы сталкиваетесь с междоменными запросами.Лучше всего использовать JSONP вместо JSON (при условии, что api.biblia.com поддерживает JSONP):http://api.jquery.com/jQuery.ajax (см. Обсуждение типа данных JSONP на этой странице)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...