Междоменный запрос JSON?

Вопрос:

Я пытаюсь использовать 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);

14
задан Stefan Steiger 7 May 2013 в 13:27
поделиться

2 ответа

То, что вы можете сделать поперечному домену, является вложение сценария, включают в себя:

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

14
ответ дан 1 December 2019 в 10:02
поделиться

JSON - это просто метод сериализации. Нет никаких соотношений между методом сериализации и вопросом о том, попытаются ли браузер, попытайтесь остановить вас от доступа к данным в доменах. (Это объясняет, почему вы только найдете парсеров - нечего JSON, кроме кодирования и декодирования его).

XMLHTTPREQUEST только назван XML HTTPREQUEST. На самом деле нет ничего общего с XML. Его можно использовать для отправки текстовых данных, данных, закодированных в JSON, или любой метод сериализации.

Существует несколько методов доступа к домену данных. один описан в ответе Дэвида Хедлунда. Другие можно найти в ответах на подобные вопросы (см. Здесь и здесь ).

13
ответ дан 1 December 2019 в 10:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: