문제

가 문서화되어 최대의 길이 문자열 데이터를 사용할 수 있습에서 보내는 방법의 XMLHttpRequest 에 대한 주요 브라우저 구현?

실행하고 있으로 문제를 JavaScript XMLHttpRequest 게시물에 실패 FireFox3 때 데이터를 통해 약 3k.가정후 행동과 같은 기존의 양식을 게시합니다.

W3C 문서 언급한 데이터 param 의 보내는 방법은 dom 문자열이지만 나는 확실하지 않는 방법 주요 브라우저 구현니다.

여기에 간단한 버전의 자바스크립트,경 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;
        }
    } 
}
도움이 되었습니까?

해결책

나는 최대 길이를 따라 달라집하지만에 브라우저지만,또한 웹 서버에 있습니다.예를 들어,아파치는 HTTP 서버 LimitRequestBody 지시어 할 수 있는 어느 곳에서 0 바이트 2GB 데이터가 있습니다.

다른 팁

에 따라 XMLRPC spec, 유일한 한도에서의 크기 정수 및습니다.

을 지정하지 않는 방법이 실패하는 그러나코딩이 잘못되었습니다.를 사용해야 합 encodeURIComponent 지 않 에 encodeuri.

기본값의 최대 크기는 요청 엔티티에 몸을 클라이언트가 가능한 메모리를 사용할 수 있습니다.서버로 이미 지적한 거부할 수도 있습니다 entity 몸을 통해 특정 크기.IIS6 7 예를 들어 있 200KB 기본 제한.

에 대한 구성 Nginx 야에서 수행 client_max_body_size 와 캘리포니아의 모든 값으로 설정 예:20m20MiB 또는 0 으로 설정하여 사용하지 않도록 설정합니다.

vim /etc/nginx/nginx.conf

파일을 저장하고 닫,변경 내용을 적용 nginx.conf,다음 테스트-t 고를 보호-s reload:

/usr/sbin/nginx -t
/usr/sbin/nginx -s reload

Syntax:client_max_body_size 크기;

기본값:client_max_body_size1m;

Context:http server 위치

설정합니다 허용되는 최대 크기를 클라이언트의 요청을 몸에 지정한"Content-Length"요청 헤더를 포함시켜야 한다.인 경우에 요청을 초과하는 구성된 값 413(요청 엔티티가 너무 큰)오류가 클라이언트에게 반환됩니다.하시기 바랍는 브라우저가 올바르게 표시할 수 없습이 오류가 있습니다.설정에는 크기가 0 확인하지 않는 클라이언트의 요청을 본체 크기입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top