Ajax에서 동적으로 바뀌는 셀렉트 박스를 만들었지만 움직이지 않기 때문에 메모 (전은 움직였는데)
1. 전제
셀렉트 박스에서 도도부 현을 선택하면 다음 셀렉트 박스에서 시정촌과 같은 더 자세한 영역을 선택할 수 있습니다.
2. 현상
도도부현을 선택해도 다음의 셀렉트 박스가 움직이지 않는다.
(개발 환경(AWS Cloud9)에서만. Heroku에서 배포한 것은 움직입니다.)
3. 원인 조사
【디버그 해설 동영상】Rails 앱으로 Ajax가 잘 움직이지 않을 때 확인하는 포인트
Ajax가 움직이는 흐름
1. 브라우저에서 선택 상자 변경
2. jQuery에서 JS로 replaceChildrenOption
3. JS에서 Rails로 요청
4. Rails 내에서 데이터 취득
5. JS에 응답
6. 브라우저의 하위 카테고리 재작성
순서 1
도도부현을 선택해도 다음의 셀렉트 박스가 움직이지 않는다.
(개발 환경(AWS Cloud9)에서만. Heroku에서 배포한 것은 움직입니다.)
3. 원인 조사
【디버그 해설 동영상】Rails 앱으로 Ajax가 잘 움직이지 않을 때 확인하는 포인트
Ajax가 움직이는 흐름
1. 브라우저에서 선택 상자 변경
2. jQuery에서 JS로 replaceChildrenOption
3. JS에서 Rails로 요청
4. Rails 내에서 데이터 취득
5. JS에 응답
6. 브라우저의 하위 카테고리 재작성
순서 1
↑문제 없음
순서 2
↑ 돌아오지 않는다. Why?
4.Rails의 로그를 살펴보기
Can't verify CSRF token authenticity.
Completed 422 Unprocessable Entity in 1ms (ActiveRecord: 0.0ms)
「422는 숫자, 개발자 툴의 에러로 본 적 있는데…
↓
알아보기
Ruby on Rails 서버에 POST를 보낼 수 없습니다! ? (Can't verify CSRF token authenticity)
h tp // 여유롭게? 하테나 bぉg. 코m/엔트리/2014/09/03/104824
CSRF란 무엇입니까? Cross-Site Request Forgeries의 약자로 POST하는 곳으로 유도하는 공격인 것 같습니다. 이것을 막기 위해서 구현되었다든가.
해결 방법
ApplicationController의 protect_from_forgery, :exception의 개소를 null_session으로 한다.
여기에서 소개된 대로 exception을, null_session으로 한 곳 제대로 움직여 주었다.
일단 여기까지.
외부에서 POST할 수 없습니까? Rails의 CSRF 대책을 정리해 보았습니다. ↑ 이런 것을 보면 좋을까?
다시 알아보자.
Can't verify CSRF token authenticity.
Completed 422 Unprocessable Entity in 1ms (ActiveRecord: 0.0ms)
Reference
이 문제에 관하여(Ajax에서 동적으로 바뀌는 셀렉트 박스를 만들었지만 움직이지 않기 때문에 메모 (전은 움직였는데)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/simp338/items/0e4daf78e27d0956c78c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)