질문 Q #14286
ajax 는 꼭 절대경로로 호출해야 하나요?
초보™ 2016-07-19 15:57:09

CI 컨트롤러에서 404 not found를 주네요.

 

        $('#userid').blur(function(){
            var checkid;
            checkid = $.trim(this.value);

            if (checkid!="")
            {
                $.ajaxSetup({dataType:"text",async:false,url:"./user/checkid",type:"POST",data:{"userid":checkid}});
                $.ajax({
                success:function(data){
                    alert(data);
                    if (data)
                    {
                        $('#help-userid').html("사용할 수 있는 아이디 입니다.");
                        $('#help-userid').addClass("help-success");                    
                    }
                    else
                    {
                        $('#help-userid').html("사용중인 아이디 입니다.다른 아이디를 입력하십시오.");
                        $('#help-userid').addClass("help-warning");                    
                    }
                },
                error:function (xhr, ajaxOptioins,thrownError){
                    console.log(xhr.status);
                    console.log(thrownError);
                    alert("확인중에 문제가 발생했습니다.\n관리자에게 문의해 주십시오.");
                    request=false;
                }
                });                
            }
});

url 부분을 절대경로로 주면 찾는데 저렇게 상대 경로를 주면 404 not found가 나오네요

지금 홈페이지를 sub 폴더에서 개발 하고 있거든요.

다른 사이트소스도 같이 있는 처지라 ㅜㅜ;;

모든 js를 찾아서 경로를 바꾸기도 애매하고여 --;;

뭔가 다른 방법이 없을까요 --?

 

답변 5
#1 kaido 2016-07-19 16:08:00

1. 절대 경로가 아니여도 잘 됩니다.

2. 해당 경로 호출 확인해 보시면 분명 잘못된 주소를 호출 했음을 알 수 있을 것입니다.

3. 어느쪽이든 수정을 해야 합니다. 

 

파일 전부 불러다 놓고 일괄치환 하세요.

#2 닉 2016-07-19 16:09:24

저는 var action = '/' + mgf + '/pkg/setting/stayFormLists'; 요런식으로 쓰고 있어요.. 

mgf라는 전역변수 하나 만들어 놓고 재활용.. 이렇게 안하시려면 모듈화해서 쓰셔도 되고요..

#3 닉 2016-07-19 16:10:11
kaido님 2번은 ./ << 이부분인듯?
#4 kaido 2016-07-19 16:13:47

@닉

네 그렇죠. 실험해보시면 ./ 이것의 의미는  [현재 주소에서] 입니다.

가령   http://cikorea.net/bbs/view/qna 이라면

http://cikorea.net/bbs/view/qna/user/checkid

이렇게 되는 겁니다.

[아마 맞을거에요. 저도 가끔 헷깔림]

가급적이면 url 파라메터 앞에는 base_url 을 집어넣고 작업 하세요.

한번 해두면 두고두고 고통 안 받습니다.

#5 초보™ 2016-07-19 16:39:02

@닉 @kaido 님 모두 감사드립니다.

일단은 js 전역 변수 하나 만들어서 해결했습니다.