2012-05-12 4 views
0

이 자바 스크립트가 있습니다. 로그인 아약스 호출 의 성공 콜백에서 실행 AJAX 호출이 나는 getheader 실패에 두 번째 Ajax 호출을 의미 콘솔에서이 로그를 얻을 PHP Ajax 로그인, 로그인 성공 후 Ajax가 작동하지 않음

$('.js-div-signin form').submit(function(){ 
    $form = $(this); 
    $isValid = $(this).validate({ 
     rules: { 
      email:'required email', 
      password:'required' 
     } 
    }); 

    if($isValid.form()) { 
     $data = { 
      email:$('.js-input-email',$form).val(), 
      password:$('.js-input-password',$form).val(), 
      remember:$('.js-input-remember:checked',$form).val() 
     }; 

     $('input', $form).attr('disabled','disabled'); 

     $.ajax({ 
      url:'/ajax/login', 
      data:$data, 
      type:'post', 
      dataType:'json', 
      success:function(res){ 
       if(res.type == 'success') { 
        /** 
        * This is the ajax call not working 
        */ 
        $.ajax({ 
         url:'/ajax/getheader', 
         dataType:'html', 
         success:function($html){ 
          $('#header').html($html); 
         } error:function(a, b) { 
          console.log(a); 
          console.log(b); 
         } 
        }) 
       } else { 
        showError(res.message); 
        $('.js-input-password',$form).val(''); 
        $('input', $form).removeAttr('disabled'); 
        $('.js-input-password',$form).focus(); 
       } 
      }, error:function(){ 
       showError('Email or Password incorrect'); 
       $('.js-input-password',$form).val(''); 
       $('input', $form).removeAttr('disabled'); 
       $('.js-input-password',$form).focus(); 
      } 
     }); 
    } 

    return false; 

}); 

실행되고 있지 올바르게하지만 나를 loggin에 인 하지만 오류가 모든

> Object 
Error 

어떤 아이디어가에서 정보를 제공하지 않는 이유는 무엇입니까?

는 나는 내가 로그인 아약스를 통해 PHP는 세션을 시작하고 쿠키를 잘 작성에서 로깅되지 않은,이 버그는 쿠키 나 계절

내가 처음에있어로서이 무대에 관련 될 수있다 생각? 이 세션은 이거나 쿠키가 액세스 할 수 없거나 현재 페이지에 존재하지 않습니다 (여기서 로그인 아약스 호출을하지 않았습니다).

그래서 어쩌면 PHP는이 섹션에서 로그인 (A)의 가져 오는 내용에서 방해 (세션 쿠키 출구 곳) 페이지에서 로깅되지 않은에서

가 어떤 의미가 있습니까 (쿠키 나 세션이 아닌 시작)? 아약스 오류 콜백가 IT 것 오류 메시지가 포함되어 있기 때문에 마지막 로그 인터 휴식 것 error(jqXHR, textStatus, errorThrown) 3 개 개의 매개 변수까지 걸릴 수 있습니다 도움

+0

내가 지적한 두 가지 : # 1 - 문제가있는 AJAX 응답을 닫는 세미콜론이 없으며 성공은 유형 200이고 200없이 성공할 수는 없으므로 if를 확인하십시오. = 성공은 중복되고 시간과 공간이 낭비됩니다. 또한 일반 텍스트가 문제가 아니어도 올바른 MIME 유형을 보내고 있는지 확인하십시오. 어쨌든 OBJECT는 PHP 파일의 JSOn 응답이며 파싱해야합니다. $ Html.name like – Ohgodwhy

+0

네 이름 공간 "js-"가 어디서 났어? –

+0

@Ohgodwhy 답변 주셔서 감사합니다. 그러나 어떤 제안에도 맞지 않습니다. # 1 Semicolons on javascript는 필수 항목이 아닙니다. # 2 res.type == "success"는 json 응답을 참조하고 있습니다. 나는 ajax 호출에서 가져 왔습니다. 아약스 객체를 참조하지 않습니다. # 3 MIME 형식은 중요하지 않습니다. 왜냐하면 jquery에게 응답을 처리 할 방법을 알려주고 있기 때문입니다.ajax # 4 개체가 jsXHR Object 또는 오류 콜백의 첫 번째 매개 변수 인 XMLRequest 개체를 참조하고 두 번째는 형식이며 세 번째 것은 비어있는 오류 메시지입니다. btw –

답변

0

에 미리

감사합니다.

+0

비어 있습니다 ... 아무것도 ... –

0

하지 당신이해야 할 노력하고 있지만, 이것은 나에게 체인 함수에 대한 함수 호출 어떻게 생겼는지 확인하십시오

if($isValid.form()) {...} 

하지만이 작동하고 있다면, 당신은 Ajax 호출의 I에 있어요 괜찮다고 가정 해 봅시다.

두 번째 아약스 호출이 성공 및 오류 핸들러 사이에 쉼표를 누락하는 것, 그리고 그것은 아마 당신이 콘솔에 관련 아무것도 얻지 못하고있는 이유 중 하나

시도 :

$.ajax({ 
    url:'/ajax/getheader', 
    dataType:'html', 
    success: function(data){ 
     console.log(data); 
     $('#header').html(data); 
    }, 
    error:function() { 
     console.log('error'); 
    } 
}); 
+0

좋은 지적입니다. 당신은 100 % 정확하지만, 그것은 고정되지 않았습니다, 내가 올바르게 그것을 가지고 내 코드에서 내가 그것을 철자가 잘못 붙여 넣기 복사 기능을 복사 할 수 있습니다. '$ isValid = $ (this) .validate ({...'는 단지 jquery 유효성 검사기 플러그인이고,'$ isValid.form()'은 폼을 실제로 검증하기 위해 호출하는 함수입니다 ... 감사합니다. 너는 비록 제안 –

관련 문제