XMLHttpRequest
主要なブラウザ実装のsendメソッドで使用できる文字列データの長さの文書化された最大値はありますか?
XMLHttpRequest
データが約3kを超えると、FireFox3でJavaScript投稿が失敗するという問題が発生しています。投稿は従来のフォーム投稿と同じように動作すると想定していました。
W3Cのドキュメントには、sendメソッドのデータパラメータが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;
}
}
}