이미 해결책을 발견했습니다 있지만, 여전히 디버거를 사용하여 상황을 개선 할 수있다. jQuery와 AJAX 도우미를 사용한다고 가정하면 $.ajax
메서드의 first line에 중단 점을 설정하기 만하면됩니다.
$.ajax
으로 전화를 걸면 런타임이 중단 점에서 중단되고 호출 스택을보고 호출의 출처를 정확히 알 수 있습니다.
jQuery 또는 다른 래퍼 대신 직접 XMLHttpRequest
생성자를 사용하는 경우 호출자를 추적하기 위해 원래 구현 인 XMLHttpRequest
을 더미 구현으로 바꿉니다.
function XMLHttpRequest() {
this.open = function() {}; // ignore
this.send = function() {
debugger;
};
}
장소 중단 점 또는이 오버라이드 (override) 구현의 전송 방법에서 프로그래밍 방식 디버거를 호출하고 누군가가 새로운 XMLHttpRequest
객체를 인스턴스화하고 send
메소드를 호출하려고 할 때마다, 당신은 전화를 차단하고 통화를 볼 수 있습니다 누가 전화를했는지 알아 내기 위해 추적합니다.
Firefox 용 Firebug 또는 Chrome 및 Safari에 내장 된 개발자 도구와 같은 우수한 디버깅 옵션이 많이 있습니다.
은 당신이 오해 생각하는 모든 페이지/액션 – iwasrobbed
을 호출되고 무엇을 컨트롤러 행동에 기반을 분리합니다. 파이어 버그에서 아약스 전화를하는 걸 볼 수 있다고 했지? 따라서 어떤 Ajax 호출에서 어떤 경로가 요청되어 있는지 확인하면 해당 Ajax 호출이 특정 컨트롤러/동작으로 격리됩니다. 예를 들어, AJAX 호출이 서버 로그의'/ users/new' 경로에 도달하면'users # new' 액션과 관련이있을 것입니다. 그렇게하면 어떤 JS 코드가 그 호출을 할 수 있는지를 분리 할 수있게된다. –
에서 발생 – iwasrobbed