Есть ли зарегистрированный макс. к длине строковых данных, которые можно использовать в отправить методе XMLHttpRequest
для основных реализаций браузера?
Я сталкиваюсь с проблемой с JavaScript XMLHttpRequest
Сообщение, переставшее работать в FireFox 3, когда данные закончены приблизительно 3k. Я принимал Должность, будет вести себя то же как стандартное Сообщение Формы.
Документы W3C упоминают, что параметрический усилитель данных отправить метода является DOMString, но я не уверен как главная реализация браузеров это.
Вот упрощенная версия моего JavaScript, если bigText закончен приблизительно 3k, это перестало работать, иначе это работает...
var xhReq = createXMLHttpRequest();
function createXMLHttpRequest() {
try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) {}
try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {}
try { return new XMLHttpRequest(); } catch(e) {}
alert("XMLHttpRequest not supported");
return null;
}
function mySubmit(id, bigText) {
var url = "SubmitPost.cfm";
var params = "id=" + id + "&bigtext=" + encodeURI(bigText);
xhReq.open("POST", url, true);
//Send the header information along with the request
xhReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhReq.setRequestHeader("Content-length", params.length);
xhReq.setRequestHeader("Connection", "close");
xhReq.onreadystatechange = onPostSubmit;
xhReq.send(params);
}
function onPostSubmit() {
if (xhReq.readyState==4 || xhReq.readyState=="complete")
{
if (xhReq.status != 200)
{
alert('BadStatus');
return;
}
}
}
Я полагаю, что максимальная длина зависит не только от браузера, но также и от веб-сервера. Например, Apache, сервер HTTP имеет директиву LimitRequestBody, которая позволяет где угодно от 0 байтов до ценности на 2 ГБ данных.
Согласно спецификации XMLRPC, единственные реальные пределы находятся на размере целых чисел, и удваивается.
Вы не указываете, как это перестало работать однако, Ваше кодирование является неправильным. Необходимо использовать encodeURIComponent не encodeURI.
Примите значение по умолчанию максимальный размер тела объекта запроса на клиенте, вероятно, только ограничен доступной памятью. Сервер, как был уже указан, может отклонить тела объекта свыше определенного размера. IIS 6 и 7, например, имеет предел значения по умолчанию 200 КБ.