Jquery Ajax - 막대한 문자열 값 게시
3mb 정도의 큰 문자열을 올려야 하는데 url param이 아닌 php로 보낼 수 있나요?
url params로 보내면 url의 크기 제한에 도달합니다.
어떻게 하면 이 문제를 해결할 수 있을까요?무슨 단서라도?
정말 감사해요.
사실 저는 이렇게 하고 있습니다.
$.ajax({
type:'POST',
.......
data:{string:3MB_string}
});
저는 PHP와 jQuery를 사용하고 있고, 3mb base64 문자열을 간단한 url로 php로 보내고 싶습니다.site.com/script.php
문자열이 File Reader API base64 이미지입니다.
이것은 문자열의 예이지만 이것은 크기 제한에 도달하지 않을 것입니다. 3mb가 아니기 때문에 3mb를 보여주는 것은 덜 문제가 됩니다. http://jsfiddle.net/QSyMc/
POST 요청을 사용해야 합니다.
$.ajax({
url: '/script.php',
type: 'POST',
data: { value: 'some huge string here' },
success: function(result) {
alert('the request was successfully sent to the server');
}
});
서버측 스크립트에서 다음과 같은 값을 가져옵니다.
$_POST["value"]
또한 허용되는 요청 크기를 늘려야 할 수도 있습니다.예를 들어 당신의.htaccess
파일 또는 당신의 파일에php.ini
값을 설정할 수 있습니다.
#set max post size
php_value post_max_size 20M
사용해보기processData
당신의 JSON에 대한 거짓과 문자열 표현.
var data = { "some" : "data" };
$.ajax({
type: "POST",
url: "/script",
processData: false,
contentType: 'application/json',
data: JSON.stringify(data),
success: function(r) {
console.log(r);
}
});
jQuery.jax 설명서에서:
프로세스데이터(기본값: true)
유형: 부울
기본적으로 개체(기술적으로 문자열이 아닌 다른 것)로 데이터 옵션에 전달된 데이터가 처리되고 쿼리 문자열로 변환되며 기본 컨텐츠 유형인 "application/x-www-form-urlencoded"에 적합합니다.DOM 문서 또는 기타 처리되지 않은 데이터를 보내려면 이 옵션을 false로 설정합니다.
저도 비슷한 문제를 발견했습니다.쿼리 문자열의 길이가 아니라 서버에 전달하는 변수의 개수였습니다.php.ini는 max_input_vars 필드에 변수 1200개로 제한을 둡니다.저의 경우 post_max_size 금액보다 그 금액을 초과하고 있었습니다.다시 돌아가서 쿼리를 더 효율적으로 만들고 한계를 넘지 않도록 해야 했습니다.php.ini 설정을 올릴 수도 있었지만 필수가 아닌 쿼리 매개 변수를 비활성화함으로써 더 나은 코드를 얻을 수 있었습니다.
POST 방법을 꼭 사용하셔야 합니다.문자열이 여전히 너무 크면 php.ini 파일을 확인하여 최대 POST 파라미터 크기를 확인합니다.
이 값 값을 변경하려면 다음 중 하나를 수행합니다.
1. php.ini에서 값 변경
post_max_size=20M
upload_max_filesize=20M
2. 또는 이 코드를 .htaccess 파일에 추가합니다.
php_value post_max_size 20M
php_value upload_max_filesize 20M
어떤 것을 사용할지는 접근할 수 있는 것에 따라 달라집니다.
시도해 보기:
var str = "YOUR STRING";
$.ajax({
url: 'YOUR URL',
type: 'POST',
data: { mystring: str },
success: function(result) {
console.log(result);
}
});
언급URL : https://stackoverflow.com/questions/17810063/jquery-ajax-post-huge-string-value
'source' 카테고리의 다른 글
MySQL 성능 최적화: datetime 필드별 순서 (0) | 2023.10.28 |
---|---|
쿼리 후 쿼리 집합을 필터링할 수 있습니까? 장고 (0) | 2023.10.28 |
워크시트 위치가 범위를 벗어납니다.연결이 닫혔습니다.EPLUS 사용시 (0) | 2023.10.28 |
ng-selected는 어떻게 작동합니까? (0) | 2023.10.28 |
블록 댓글 작성에 #if 0을 사용하는 이유는 무엇입니까? (0) | 2023.10.23 |