ajax를 사용하여
아이디와 비밀번호 검증할려고 하는데
생각보다 잘되지 않아 글을 올리게 되었습니다.
제가 회사내 테스트서버에서 만들고 있습니다.
해당 테스트 페이지의 기본 url이
http://xxx.xx.xx.xx/~landcom
여기가 기본 document root폴더 입니다
이곳에 CI를 넣어두고 사용하고 있습니다
접속페이지는
http://xxx.xxx.xx.xx/~landcom/index.php/login_c
기본 접속페이지가 출력이 됩니다
ajax를 통해 아이디갑과 비밀번호를 검증할려고
url:http://xxx.xx.xx.xx/~landcom/index.php/login_c/login_confirm
한후 시도해보니 500에러가 출력이 되더라구요 확인해보니
The action you have requested is not allowed.
이런 에러가 출력이 되더라구요;;
url에 '~'있어서 에러가 출력되는 것인가 해서 인코딩처리하여 해보아도 에러는 계속 출력이 되고
혹시나 해서 테스트켬 http://xxx.xx.xx.xx/~landcom 이렇게 해보니
에러 출력없이 ajax가 되더라구요;;
비록 응답으로 메인페이지가 출력이 되었지만
그래서 다시
http://xxx.xx.xx.xx/~landcom/index.php
http://xxx.xx.xx.xx/~landcom/index.php/login_c/login_confirm
해보았는데도 The action you have requested is not allowed. 이에러가출력이 되네요 ㅜㅜ
도대체 무엇이 문제인지 모르겠네요 ㅜㅜ 찾아보아도 인코딩해서 보내라는 말밖에 없고 그것도 넘겨주는 값을 인코딩처리하여 넘기라는
글만 많네요...
또 특이한점
http://xxx.xx.xx.xx/~landcom
했을 시 ajax가 정상적으로 되긴하는데 개발자도구에서 확인해보면
POST ~landcom 301 Moved Permanently
GET /~landcom/ 200ok
이렇게 두개가 출력이 됩니다
ajax type를 post로 해두었는데 GET으로 하나가 더 생기더라구요...
301 Moved Permanently 찾아보았는데 자료도 많지도 않네요
http://www.seo-korea.com/301-vs-302-redirect/
이곳의 자료를 읽어보아도 쉽사리 이해가 되지 않습니다.
혹시나 이게 문제 인것 일까요??
지금 테스트서버내에는
하나의 서버에 여러개의 사이트가 있습니다
그래서 계정에 따라 doument root가 다릅니다
http://xxx.xx.xx.xx 했을 경우 A페이지
http://xxx.xx.xx.xx/~B B페이지
http://xxx.xx.xx.xx/~landcom 이것이 제가 landcom이라는 유저를 서버에 추가하고
테스트를 하는 곳입니다
A페이지에 접속하여 개발자도구에서 쿠키를 살펴보면
제가 http://xxx.xx.xx.xx/~landcom에서 CI 환경설정에서 session명을 land_session으로 주었는데
그세션이 있더라구요;;
서버가 하나이다보니 session을 공유하는 것인지;;
이거때문에 301이 뜨고 정상적인 ajax가 안되는것 일까요??
긴글 읽어주셔서 감사합니다
자제 해결하였습니다.
$config['csrf_protection'] = false;
변경해주니 잘되네요ㅎㅎ;