2012-03-23 4 views
3

아약스의 URL에 추가 할 수있는 매개 변수의 길이에는 제한이 있습니까? 루비에 얇은 서버를 사용하고,이 형식의 웹 브라우저에서 아약스 요청했다입니다 : 문자열 v의 길이가 약 7000 바이트를 초과하는 경우Ajax 문자열 길이 제한?

io=new XMLHttpRequest(); 
io.open("GET","http://localhost:3000&v="+encodeURIComponent(JSON.stringify(v)),true); 

, 충돌 것입니다. 적은 경우에는 효과가있는 것 같습니다. 내 관찰이 맞습니까? 제한은 어디에서 오는가? Thin, Javascript 또는 브라우저에서? Chrome 브라우저를 사용합니다.

+0

[AJAX GET 요청의 최대 쿼리 문자열 길이?] (http://stackoverflow.com/questions/1344616/max-length-of-query-string-in-an-ajax-get- 요청) –

답변

6

아약스 용 URL에 추가 할 수있는 매개 변수의 길이에는 제한이 있습니까?

예, GET 요청을 사용하는 경우 클라이언트 브라우저에 따라 제한이 있습니다. 그리고이 제한은 AJAX와는 아무런 관련이 없습니다. IIRC는 IE의 경우 약 4K이지만 상황이 변경되었을 수 있습니다. 그러나 어떤 경우에도 한계가 있습니다. 제한되고 싶지 않으면 POST를 사용해야합니다.

+0

다른 요청 유형을 사용하는 경우 제한 시간이 더 길어 집니까? – sawa

+0

@sawa, no. 사용할 수있는 한도는 사용중인 브라우저에 따라 다릅니다. –

1

브라우저에서 제한 가능성이 큽니다. this discussion에 따르면 URL을 약 2000 자 이하로 유지해야합니다.

-2

문자 바이트에 따라 GET 요청에 제한이 있습니다. ASCII를 사용하는 경우 URL 자체를 포함하여 256 자입니다. UTF-8의 경우 1 utf 문자가 2 바이트이므로 실제로는 절반입니다.

POST에서는이 문제가 발생하지 않습니다.

+0

감사. POST를 사용하겠습니다. – sawa

+0

아뇨, 이건 절대적으로 잘못되었습니다! – Philipp

+0

사실 요즘 URL 제한이 연장되었습니다. 2012 년에 기본 구성이 그렇게 관대하지 않았던 한계가있었습니다. – Panagiotis