Ajax를 사용한 비동기 통신에서 processData : false를 작성했기 때문에 매개 변수가 날리지 않았기 때문에
막힌 곳
다음과 같이 processData: false를 작성했기 때문에 data의 {category: hoge}를 보낼 수 없습니다. processData : false에 대해 조사한 것을 메모합니다.
$.ajax({
url: '/urls/research/',
type: 'GET',
data: {category: hoge},
dataType: 'json',
// processData: false ← falseにしていたためにcategoryパラメータが送れなかった
contentType: false
})
환경
Ruby: 2.3.1
Rails: 5.0.1
processData 정보
data에 지정된 객체를 쿼리 문자열로 변환할지 여부를 설정합니다. 기본값은 true이며 자동으로 "application/x-www-form-urlencoded"형식으로 변환합니다. DOMDocument 자체와 같이 다른 형식으로 데이터를 보내기 위해 자동 변환을 원하지 않는 경우 false를 지정합니다. (인용: 일본어 참조 )
결론부터 말하면
HTTP 통신으로 GET 시에는 processData를 지정하지 않고 초기값 true를 이용하고 POST 시에는 processData: false를 지정합니다.
상세
data로 지정한 객체(맨 위의 예에서는 category:hoge)를 쿼리 문자로 변환할지 여부입니다. (쿼리란, 검색을 행할 때의 검색 조건을 말하며, 쿼리 문자열이란 검색 조건에 필요한 문자열을 말한다. 녀석이야.)
실제로 type: 'GET'에 고정하여 processData의 값을 바꾸어 본다.
$.ajax({
url: '/urls/research/',
type: 'GET',
data: {category: hoge},
dataType: 'json',
// processData: false ← falseにしていたためにcategoryパラメータが送れなかった
contentType: false
})
Ruby: 2.3.1
Rails: 5.0.1
processData 정보
data에 지정된 객체를 쿼리 문자열로 변환할지 여부를 설정합니다. 기본값은 true이며 자동으로 "application/x-www-form-urlencoded"형식으로 변환합니다. DOMDocument 자체와 같이 다른 형식으로 데이터를 보내기 위해 자동 변환을 원하지 않는 경우 false를 지정합니다. (인용: 일본어 참조 )
결론부터 말하면
HTTP 통신으로 GET 시에는 processData를 지정하지 않고 초기값 true를 이용하고 POST 시에는 processData: false를 지정합니다.
상세
data로 지정한 객체(맨 위의 예에서는 category:hoge)를 쿼리 문자로 변환할지 여부입니다. (쿼리란, 검색을 행할 때의 검색 조건을 말하며, 쿼리 문자열이란 검색 조건에 필요한 문자열을 말한다. 녀석이야.)
실제로 type: 'GET'에 고정하여 processData의 값을 바꾸어 본다.
search/? 뒤의 category 변수에 저장된 hoge가 반환되고 있음을 알 수 있습니다.
HTTP 메서드가 GET임에도 불구하고 data에 지정된 객체를 쿼리 문자열로 변환하지 않기 때문에 search 뒤에 아무것도 없다는 것을 알 수 있습니다.
지적이 있으면 코멘트란에서 지적해 주시면 감사하겠습니다.
Reference
이 문제에 관하여(Ajax를 사용한 비동기 통신에서 processData : false를 작성했기 때문에 매개 변수가 날리지 않았기 때문에), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/s4s7/items/dbdd28bbc1586b056e42텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)