Отправка больших данных на сервер, кросс-домен - PullRequest
1 голос
/ 21 января 2010

Я пытаюсь отправить куски данных с разных серверов, на которых запущено мое приложение.
Используя какой-то фиктивный источник изображения, передавая мои данные как запрос GET. ( img.gif? Ааа = ххх и бб = ууу ... )
Запрос во много раз длиннее и обрезается.

Есть ли какой-нибудь лучший способ отправить данные в кросс-браузер?

Ответы [ 2 ]

0 голосов
/ 21 января 2010

Разделите вашу полезную нагрузку (например, на 1024 байта), затем отправьте, используя несколько запросов GET.

0 голосов
/ 21 января 2010

Было бы лучше, если бы вы использовали метод POST при отправке данных.

 var msgSender = new ActiveXObject("Microsoft.XMLHTTP"); 
 msgSender.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
 msgSender.setRequestHeader("Encoding", "Windows-1257")     
 msgSender.open("POST", "http://yourderver/page" ,true);
 msgSender.onreadystatechange = function(){...};
 var msg = "your very long message goes here";

 //preparing post data
 var strToSend = "someotherarg=somevalue" + username;
     strToSend+= "&msg=" + msg;
 strToSend = escape(strToSend);
 msgSender.send(strToSend);

Решение еще проще, если вы используете jQuery - просто вызовите $.post() метод: http://docs.jquery.com/Ajax/jQuery.post

* 1007 EDIT *: Однако это не будет работать для междоменных доменов, если вы не укажете заголовки 'Access-Control' на своем сервере, и у клиентов есть современные enouhg браузеры (FireFox 3.5+ и т. Д.)

Итак, еще одно решение состоит в том, чтобы добавить на свою страницу скрытый IFRAME (тогда страница живет на вашем сервере), который содержит форму, и вы вызываете Submit () этой формы для отправки данных.

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