2012-05-13 2 views
2

내가 Backbone.js 작업을 다음과 같은 환경 설정을 배우는 중이에요 : 올바른 메소드가 호출 서버에 "index.php를"에서Backbone.js 동기화 - PHP 리턴

/* define the model */ 
var Login = Backbone.Model.extend({ 
    url:"api/index.php/login/" 
}); 

/* the following code is contained in a view method */ 

var login = new Login({ 
    email: $("#email").val(), 
    pass: $("#pass").val() 
}); 

var result = Backbone.sync('create',login); 
alert(JSON.stringify(result)); 

및 데이터를 올바르게 사용할 수 있습니다.

경고는 출력 : {"readyState":1}

지금 내 질문 : 어떤 서버 (index.php를) 반환/출력은 클라이언트에 대답해야합니까? 데이터를 클라이언트로 다시 전송하고 싶습니다. 예 : 그것을 표시하십시오.

답변

2

Backbone.sync()은 동작이 비동기식 인 입니다. sync()하지 반환 유용 아무것도 않기 때문에 당신은

var result = Backbone.sync('create', login); 

할 수 없습니다. 요청을 서버로 보내고 서버의 응답이 도착하기 바로 전에 즉시 반환합니다.

options parameter을 사용하고 여기에 successerror 콜백 기능을 배치하십시오. 서버는 예를 들어, 401 Unauthorized 응답을 리턴하는 경우

Backbone.sync('create', login, { 
    success: function() { 
    // whatever you want to do when login succeeds 
    }, 
    error: function() { 
    // display an error message 
    } 
}); 

error 콜백이 실행된다; 서버가 200 OK을 반환 할 때 success 콜백.

이러한 콜백을 사용하는 방법 및 사용할 수있는 다른 옵션에 대한 문서는 jQuery.ajax() 문서를 참조하십시오.

+1

이 아주 기본적인 오해를 고쳐 주셔서 감사합니다. 감사합니다. – gro