jQuery: getJSON против get, заголовки http? (Twitter API) - PullRequest
1 голос
/ 25 ноября 2010

Привет всем.Я использую API Twitter через JavaScript и запускаю вызов user_timeline.json.Кажется, с jQuery.getJSON все работает нормально, но мне бы очень хотелось получить ответ в виде строки без преобразования его в объекты, что getJSON делает.Когда я меняю свой метод с getJSON на get, я получаю следующую ошибку в Chrome:

Origin http://localhost is not allowed by Access-Control-Allow-Origin.

, которая, вероятно, вызвана отсутствием заголовка Accept.Я прав?Если так, как я могу указать HTTP-заголовок для метода get?

Спасибо.

Ответы [ 2 ]

3 голосов
/ 25 ноября 2010

Вы не можете получить его в виде необработанного текста, все работает как JSONP, который создает тег <script>, а данные, которые возвращаются, представляют собой настоящий JavaScript, например:

myFunc({ ...data ... });

Здесь не JQuery преобразует его в JSON, это фактический вызываемый JavaScript, где myFunc - это ваша функция обратного вызова ... поэтому запрос никогда не является текстовым, чтобы иметь дело с ним, это объект javascript вне очереди.

1 голос
/ 25 ноября 2010

Только при использовании JSON вы можете запрашивать домены, отличные от исходного, с помощью Ajax. ( по соображениям безопасности )

См

Для этого вам понадобится прокси-сервер.


Если вам нужен фактический JSON в строковом формате, просто перенастройте его.

Используйте https://github.com/douglascrockford/JSON-js и звоните var jsonString = JSON.stringify( yourJsonObject );

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