Есть ли способ вернуть JSON, отрисованный javascript через вызов ajax - PullRequest
0 голосов
/ 25 ноября 2011

У меня есть ситуация, когда мне нужно запустить какой-нибудь javascript и получить ответ на сайте клиента с моего сайта, и я пытаюсь придумать лучший способ сделать это из-за безопасности междоменных сценариев.У меня есть доступ к размещению фрагмента кода на странице клиента.Я могу изменять свой собственный сайт столько раз, сколько захочу.

Один из вариантов - открыть страницу с помощью iframe, запустить фрагмент на своем сайте, получить ответ и установить cookie-файл, который я могу опрашивать, чтобы получитьответ от ... yikes ...

Я думал о разных способах сделать это, и я пытаюсь проявить творческий подход.Я бэкэнд-парень с небольшим опытом работы с JavaScript, но не имею ничего общего с междоменными вещами.Пожалуйста, я был бы признателен за любую помощь.Спасибо,

Ответы [ 3 ]

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

Вы можете использовать JSONP в вашей ситуации.

Пример с JQuery можно найти здесь

0 голосов
/ 25 ноября 2011

Может быть, вы можете вызвать веб-сервис через ajax call и вернуть строку JSON следующим образом.

$.ajax({
            type: "POST",
            url: "JSON.asmx/Getdata",
            data: {},
            contentType: "text/javascript; charset=utf-8",
            ContentLength: 15000,
            dataType: "text",
            async: true,
            // timeout:10000,
            success: function (msg) {
                asmxdata(msg);
                return false;
            },
            error: function (xhr, ajaxOptions, thrownError, request, error) {
                alert('xrs.status = ' + xhr.status + '\n' +
                            'thrown error = ' + thrownError + '\n' +
                             'xhr.statusText = ' + xhr.statusText + '\n' +
                            'request = ' + request + '\n' +
                            'error = ' + error);
                return false;

            }
        });

Затем, при успешном вызове веб-службы (здесь есть метод asmxdata ()), вы можете вычислить строку JSON в объект JSON следующим образом:

function asmxdata(data) {
var JObject = eval('(' + data + ');');
}

и присваивать значения элементам управления

document.getElementById('lblfirstname').value = JObject.Table[i].FirstName;

Если что-то неясно, пожалуйста, прокомментируйте.

0 голосов
/ 25 ноября 2011

с вашим фрагментом на стороне клиента создайте iframe динамически - тогда вы окажетесь в изолированной программной среде домена клиента и сможете отправить запрос на ваш сайт

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