Фид данных из Google Docs API - PullRequest
       11

Фид данных из Google Docs API

0 голосов
/ 09 сентября 2011

Я пытаюсь использовать API Google Docs для получения данных электронной таблицы в виде XML и, в конечном итоге, данных JSON. Я поместил URL (http://spreadsheets.google.com/feeds/list/0Aizy-VIdLC0QdDNNRkpfVncxQzZRNG9fMVhueXVMenc/1/private/values) в свой браузер) и получаю данные, даже когда не вошел в Google.

Когда я пытаюсь использовать jQuery Ajax, я получаю сообщение об ошибке «страница не найдена».

$.get('http://spreadsheets.google.com/feeds/list/0Aizy-VIdLC0QdDNNRkpfVncxQzZRNG9fMVhueXVMenc/1/private/values', function(data) {
  console.log(data)
});

Я предполагаю, что та же самая политика происхождения могла быть причиной ошибки Ajax, поэтому я попытался с PHP, но я получаю ошибку.

echo file_get_contents("http://spreadsheets.google.com/feeds/list/0Aizy-VIdLC0QdDNNRkpfVncxQzZRNG9fMVhueXVMenc/1/private/values");

Я стремлюсь преобразовать данные электронной таблицы Документов Google в объект JSON для использования на веб-странице.

Как я могу исправить эту ошибку?

Ответы [ 2 ]

5 голосов
/ 10 сентября 2011

Вы должны войти в систему, чтобы иметь возможность получить данные электронной таблицы.

Посещение http://spreadsheet.google.com/.../private/values при входе в систему приводит к содержательной странице XML. Однако попытка загрузить ту же страницу, когда она не зарегистрирована, приводит к «странице не найдена».

Согласно заголовку ответа из ответа JQuery, единственная причина этой ошибки - не вход в систему (показано ниже).

WWW-Authenticate: No credentials were included in your request.

См. Руководство по протоколу для соответствующей документации.

0 голосов
/ 10 сентября 2011

Если вы дважды проверили строку URL, причина может быть та же политика происхождения .Вы не можете получить данные из другого домена из-за строгой политики безопасности браузера.

Если вы хотите обойти это, вам нужно использовать другой подход, такой как JSONP .

Подробнее о реализации JSONP в jQuery можно прочитать на странице документации Ajax .

...