Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Передача большого объёма данных и JSONP / 15 сообщений из 15, страница 1 из 1
25.03.2014, 20:17
    #38596301
janco
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача большого объёма данных и JSONP
Здравствуйте. Стоит задача получать скрипт по технологии JSONP (кроссдоменно). Проблема в том, что этот скрипт формируется на server2 динамически и из server1 на server2 нужно передать большой объём данных (порядка 30-50Кб), на основании которых и формируется ответ. Т.е. метод GET не пройдёт, как делается в JSONP. А метод POST через обычный AJAX нельзя использовать, поскольку запрос кроссдоменный. Отправка формы в IFRAME тоже не подходит по той же причине.
Не могу ничего придумать, как решить эту проблему. Пожалуйста посоветуйте, как можно с этим справиться.
...
Рейтинг: 0 / 0
25.03.2014, 20:25
    #38596306
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача большого объёма данных и JSONP
janco,

Подойдёт. А что попробовать лень?
...
Рейтинг: 0 / 0
25.03.2014, 20:28
    #38596313
janco
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача большого объёма данных и JSONP
Что именно подойдёт?
...
Рейтинг: 0 / 0
25.03.2014, 20:30
    #38596315
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача большого объёма данных и JSONP
30-50К. Ферштейн?
...
Рейтинг: 0 / 0
25.03.2014, 21:08
    #38596339
janco
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача большого объёма данных и JSONP
Нет не ферштейн. Я пробовал - и не лень. Ответ от server2
414 Request-URI Too Large
...
Рейтинг: 0 / 0
26.03.2014, 07:02
    #38596532
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача большого объёма данных и JSONP
в сторону websockets смотрел?
...
Рейтинг: 0 / 0
26.03.2014, 07:22
    #38596537
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача большого объёма данных и JSONP
jancoЗдравствуйте. Стоит задача получать скрипт по технологии JSONP (кроссдоменно). Проблема в том, что этот скрипт формируется на server2 динамически и из server1 на server2 нужно передать большой объём данных (порядка 30-50Кб), на основании которых и формируется ответ. Т.е. метод GET не пройдёт, как делается в JSONP. А метод POST через обычный AJAX нельзя использовать, поскольку запрос кроссдоменный. Отправка формы в IFRAME тоже не подходит по той же причине.
Не могу ничего придумать, как решить эту проблему. Пожалуйста посоветуйте, как можно с этим справиться.Ни фига не понял.

Задача: из server1 на server2 нужно передать большой объём данных (порядка 30-50Кб).

При чём тут кроссдоменные запросы? Постройте общение на уровне сервера.

А метод POST через обычный AJAX ( XMLHttpRequest Level 2 ) давно уже поддерживает Cross-Origin Resource Sharing.
...
Рейтинг: 0 / 0
26.03.2014, 07:23
    #38596538
Передача большого объёма данных и JSONP
Если IE < 8 не сильно надо, то XMLHTTPRequest2(XDomainRequest) вместо JSONP
...
Рейтинг: 0 / 0
26.03.2014, 10:32
    #38596647
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача большого объёма данных и JSONP
jancoНет не ферштейн. Я пробовал - и не лень. Ответ от server2
414 Request-URI Too Large
Ну так настройте сервер, что бы Request-URI не был Too Large.
...
Рейтинг: 0 / 0
26.03.2014, 12:18
    #38596776
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача большого объёма данных и JSONP
jancoОтправка формы в IFRAME тоже не подходит по той же причине.подходит, чего это нет?
...
Рейтинг: 0 / 0
26.03.2014, 12:25
    #38596789
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача большого объёма данных и JSONP
Ответ сервера происходит через IFRAME.contentWindow.name
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
function postData(url, data, callback) {
    var timeOut = 120000, complete = false, defaultResponse = "{}";
    var IFRAME = document.createElement("iframe"), FORM = document.createElement("form");
    function processResponse(resp) {
        $(IFRAME).remove();
        var response = decodeURI(resp);
        if (callback) callback(response);
    };
    $(IFRAME).appendTo(document.body).css('display', 'none');
    function onloader() {

        var err = false, name;
        try { name = IFRAME.contentWindow.name }
        catch (e) { err = true; }
        if (err || name==undefined) {
            IFRAME.onload = onloader;
            IFRAME.contentWindow.location = 'about:blank';
            setTimeout(function() {
                if (!complete) {
                    $(IFRAME).unbind();
                    complete = true;
                    processResponse(defaultResponse);
                };
            }, timeOut);
        } else if (IFRAME.contentWindow.name.length == 0) {
            IFRAME.onload = onloader;
            var DOCUMENT = IFRAME.contentWindow.document;
            if (!DOCUMENT.body) DOCUMENT.appendChild(DOCUMENT.createElement('body'));
            $(FORM).appendTo(DOCUMENT.body).attr("action", url).attr("method", "post").attr("accept-charset", "utf-8").attr("enctype", "application/x-www-form-urlencoded");
            for (var x in data) $("<input type='hidden'/>").attr("name", x).val(data[x]).appendTo(FORM);
            FORM.submit();
        } else {
            //alert(IFRAME.contentWindow.name);
            complete = true;
            processResponse(IFRAME.contentWindow.name);
            $(IFRAME).unbind();
        }
    }
    IFRAME.onload = onloader;
    IFRAME.contentWindow.location = 'about:blank';
};
...
Рейтинг: 0 / 0
26.03.2014, 13:52
    #38596924
Яростный Меч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача большого объёма данных и JSONP
skyANAПри чём тут кроссдоменные запросы? Постройте общение на уровне сервера.+1


не рубящий в кашеЕсли IE < 8 не сильно надо, то XMLHTTPRequest2(XDomainRequest) вместо JSONPтоже вариант.
только XDomainRequest кукисы передавать не умеет, если не ошибаюсь.
...
Рейтинг: 0 / 0
26.03.2014, 18:48
    #38597353
janco
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача большого объёма данных и JSONP
ShSergeНу так настройте сервер, что бы Request-URI не был Too Large.
Интересно, кто мне даст это сделать, компилировать апач ? Ещё бы свой написать посоветовали. Вопрос стоит в написании клиентской части на javascript, а Вы сервера конфигурировать предлагаете.
skyANAНи фига не понял.
Задача: из server1 на server2 нужно передать большой объём данных (порядка 30-50Кб).
При чём тут кроссдоменные запросы? Постройте общение на уровне сервера.
При том, что 2 сайта на разных доменах. На Cross Origin надо посмотреть, спасибо.

AntonariyОтвет сервера происходит через IFRAME.contentWindow.name
Интересный подход, насколько я понял, то скрипт, который будет сгенерирован и загружен в IFRAME должен менять свойство name на нужное значение, а скрипт в главном окне его считывать , так? В принципе должно подойти, только я почему-то думал, что это свойство будет запрещено читать... Буду пробовать, спасибо за код.

Яростный Мечтолько XDomainRequest кукисы передавать не умеет, если не ошибаюсь.
кукисы не надо передавать. Если нужны, то я их могу считать и передать как элементы формы.
...
Рейтинг: 0 / 0
26.03.2014, 21:27
    #38597465
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача большого объёма данных и JSONP
jancoА метод POST через обычный AJAX нельзя использовать, поскольку запрос кроссдоменный
к передачам сервер-сервер кроссдоменность отношения не имеет
...
Рейтинг: 0 / 0
26.03.2014, 22:49
    #38597509
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача большого объёма данных и JSONP
janco Интересный подход, насколько я понял, то скрипт, который будет сгенерирован и загружен в IFRAME должен менять свойство name на нужное значение, а скрипт в главном окне его считывать, так?да
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Передача большого объёма данных и JSONP / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]