programing

AJAX 호출 중 JS 변수 이름 끝에 있는 대괄호를 제거하려면 어떻게 해야 합니까?

instargram 2023. 8. 30. 21:12
반응형

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

반응형