2012-04-12 2 views
1

Noob 질문 :백본 모델 저장 크롬/FF에서 오류 콜백

저는 ASP.NET MVC 3을 사용하고 있으며 백본을 통해 엔티티를 저장하려고합니다. 여기에 내가 가진 무엇 :

$('.add-program').click(function() { 
    var programName = $('.program-name').val(); 
    var program = new Program({ name: programName }); 
    program.save(null, { 
     success: function (model, response) { 
      alert('success'); 
     }, 
     error: function (model, response) { 
      alert('error'); 
     } 
    }); 
}); 

그것을 :

var Program = Backbone.Model.extend({ 

    defaults: function() { 
     return { name: "" }; 
    }, 

    initialize: function (attrs) { 
     this.set('name', attrs.name); 
    }, 

    urlRoot: '/program/add' 

}); 

가 그럼 난 버튼의 클릭 이벤트에 저장 모델을 훅 : 나는 같은 내 백본 모델 (프로그램)에 정의

IE (놀랍게도!)에서 작동합니다 - ProgramController.Add (문자열 이름) 잘 호출되면 성공 응답을 얻습니다. 하지만 Chrome 및 FF에 문제가 있습니다. 두 가지 모두 오류 콜백을 트리거합니다. Chrome에서 내 컨트롤러 액션이 전혀 작동하지 않는 경우 (FF에서도 발생합니다). 재미있는 점은 내 액션 중단 점이 적절한 param 값을 사용하여 FF에 도달하지만 여전히 오류 콜백이 발생한다는 것입니다.

나는 무엇이 일어나고 있는지 잘 모르겠습니다. Firebug/Chromebug를 통해 디버깅을 시도했지만 오류 콜백 매개 변수를 많이 볼 수 없습니다 (errorStatus는 ... 음 ... "오류"!). 나는 또한 Network 탭과 Fiddler를 조사해 보았고 나는 벨을 울리는 것을 보지 못했다. (어쩌면 나는 올바른 장소를보고 있지 않다.) 컨트롤러에 똑바로 jquery 아약스 호출을 시도하고 여전히 같은 이상한 동작을 가져옵니다. (나는 문제가 여기에있다 생각하지 않지만)

이런 경우에, 여기에 MVC 조치는 다음과 같습니다

[HttpPost] 
public JsonResult Add(string name) 
{ 
    var stubbedResponse = new {id = Guid.NewGuid()}; 
    return Json(stubbedResponse); 
} 

어떤 아이디어가 무엇이 원인이 될 수 있을까?

+0

대신 경고했다 ('오류')가 CONSOLE.LOG (응답) 일을 시도하고 MVC 다시 보내는 기능을 참조하십시오. IE가 다르게 처리하는 이유는 모르겠지만 한 번 쯤은 가치가 있습니다. – clexmond

+0

행운. 응답 객체에는 responseText : ""및 statusText : "error"가 있습니다. 다른 속성 중 하나라도 더 나은 의견을 제공 할 수 있는지 확실하지 않습니다. – rtorres

+0

고객 코드가있는 Fiddle http://jsfiddle.net/Uj5Ae/2/가 괜찮은 것 같습니다. 귀하의 서버 응답과 함께 뭔가? 백본과 언더 코어 버전이 일치하지 않습니까? – nikoshr

답변

1

고객 코드가있는 http://jsfiddle.net/Uj5Ae/2은 괜찮습니다. 귀하의 서버 응답과 함께 뭔가? 백본과 언더 코어 버전이 일치하지 않습니까?
이벤트 전파가 다른 곳에서 처리되지 않으면 클릭 처리기 끝에서 false가 반환 될 수 있습니다.

스포일러 : 이벤트 전파 :