Вопрос:
Я пытаюсь использовать JSON через домены, но все, что я нахожу, является синтаксическими анализаторами JSON, в которых я не нуждаюсь...
Я считал, что возможно сделать междоменные запросы с JSON, но до сих пор, все, что я вижу, является реализациями то использование XMLHttpRequest...
- что означает, что Вы не можете использовать междоменные запросы, по крайней мере, не вне IE 8...
Я был на http://www.json.org/, но все, что я нахожу, является или синтаксическими анализаторами или бесполезный.
Лучшее, которое я нашел с Google до сих пор,
http://devpro.it/JSON/files/JSONRequest-js.html
но это - скорее путаница, не работает перекрестный домен и внутридомен ни один - или скорее нисколько...
var the_object = {};
var http_request = new XMLHttpRequest();
http_request.open( "GET", url, true );
http_request.onreadystatechange = function () {
if ( http_request.readyState == 4 && http_request.status == 200 ) {
the_object = JSON.parse( http_request.responseText );
}
};
http_request.send(null);
То, что вы можете сделать поперечному домену, является вложение сценария, включают в себя:
var s = document.createElement('script');
s.src = 'http://someotherdomain/getMeMyJs.aspx?parameter=value';
s.onload = someOptionalCallback;
s.type = 'text/javascript';
if(document.getElementsByTagName('head').length > 0)
document.getElementsByTagName('head')[0].appendChild(s);
Теперь код, возвращаемый этим запросом, будет выполняться немедленно. Если вы хотите, чтобы это было взаимодействовать с вашим кодом, вы можете убедиться, что он возвращается со всеми данными, завернутой в функцию Вызов:
jsonCallback({ object: json, whatever: value });
Вы можете использовать это, чтобы создать API, где вы передаете имя функции обратного вызова как Запрос параметра QuaryString. Вот пример такого API
JSON - это просто метод сериализации. Нет никаких соотношений между методом сериализации и вопросом о том, попытаются ли браузер, попытайтесь остановить вас от доступа к данным в доменах. (Это объясняет, почему вы только найдете парсеров - нечего JSON, кроме кодирования и декодирования его).
XMLHTTPREQUEST только назван XML HTTPREQUEST. На самом деле нет ничего общего с XML. Его можно использовать для отправки текстовых данных, данных, закодированных в JSON, или любой метод сериализации.
Существует несколько методов доступа к домену данных. один описан в ответе Дэвида Хедлунда. Другие можно найти в ответах на подобные вопросы (см. Здесь и здесь ).