AJAX 호출 중 JS 변수 이름 끝에 있는 대괄호를 제거하려면 어떻게 해야 합니까?
현재 다음과 같은 Javascript 배열을 사용하고 있습니다.
var stuffs = ['a', 'b'];
나는 jQuery를 사용하여 위의 내용을 서버 코드로 전달합니다.load
:
var data = {
'stuffs': stuffs
};
$(".output").load("/my-server-code/", data, function() {
});
서버 측에서 다음의 내용을 인쇄할 경우request.POST
(저는 현재 장고를 사용하고 있습니다), 저는 다음을 얻습니다.
'stuffs[]': [u'a', u'b']
주의:[]
변수 이름의 접두사로stuffs
그것을 제거할 방법이 있습니까?[]
서버 코드에 도달하기 전에?
게시물을 다음과 같이 하려면 jQuery 1.4+...의 기본 동작입니다.&stuffs=a&stuffs=b
대신에&stuffs[]=a&stuffs[]=b
옵션을 다음으로 설정해야 합니다.true
다음과 같이:
$.ajaxSetup({traditional: true});
이는 모든 요청에 영향을 미칩니다.보통 이 경우엔 당신이 원하는 것이 그것입니다.요청별로 하려면 긴 통화와 설정을 사용해야 합니다.traditional: true
자세한 내용은 설명서에서 확인할 수 있습니다.
GET 요청을 사용하여 양식 또는 AJAX를 통해 어레이를 제출하면 각 요소에 어레이의 이름이 지정되고 그 뒤에 빈 대괄호 쌍이 표시됩니다.그래서 jQuery는 url을 생성하고 있습니다.http://example.com/get.php?stuff[]=a&stuff[]=b
이것이 배열을 제출하는 유일한 방법이며, 자바스크립트는 표준을 따르고 있습니다.
POST
요청은 동일한 방식으로 작동합니다(json이 하나의 긴 json 문자열로 전송되지 않는 한).
PHP에서 이것은 원래 배열로 다시 구문 분석되므로 쿼리 문자열이 약간 이상할 수 있지만 데이터는 전송된 대로 수신됩니다.$_GET['stuff'][0]
PHP에서 올바르게 작동합니다.
장고가 쿼리 문자열을 어떻게 구문 분석하는지 잘 모르겠습니다.
그[]
변수가 배열임을 나타냅니다.나는 상상한다 그 추가되는 것을 상상합니다.[]
변수 이름에는 파이썬/장고가 배열임을 알려주는 방식이 있습니다.표시되지 않는 자체 인쇄 기능을 구현할 수 있습니다.
언급URL : https://stackoverflow.com/questions/3266528/how-do-i-remove-the-square-brackets-at-the-end-of-a-js-variable-name-during-ajax
'programing' 카테고리의 다른 글
PHP와 Javascript 간에 배열을 전송하는 가장 좋은 방법 (0) | 2023.08.30 |
---|---|
jQuery Validate - 그룹에 하나 이상의 필드를 채워야 합니다. (0) | 2023.08.30 |
웹사이트 요청 시 보낸 사용자 에이전트와 다른 Javascript 사용자 에이전트(jax) (0) | 2023.08.30 |
파일 업로드 컨트롤을 사용하여 파일의 전체 경로 가져오기 (0) | 2023.08.30 |
JQuery - 값으로 라디오 버튼 찾기 (0) | 2023.08.30 |