2009-06-03 2 views
5

jQuery 이전의 어두운 어두운 날에 작성된 일부 오래된 AJAX 코드를 작성하고 있습니다. 이상하게도, 그것은 갑자기 콜백을 멈추지 않을 때까지 수년 동안 잘 작동 해 왔습니다. , 요청이 걱정으로 전송되는XMLHttpRequest가 Firefox에서 절대로 상태를 변경하지 않게하는 원인은 무엇입니까?

var xml = new XMLHttpRequest(); // only needs to support Firefox 
xml.open("GET", myRequestURL, true); 
xml.onreadystatechange = function() { alert ('test'); }; 
xml.send(null); 

파이어 버그 콘솔을 확인하고는 요청 URL에서 올바른 XML을 받고 있지만, onreadystatechange 기능이 전혀 작동하지 않습니다 : 여기에 기본 코드입니다. 시스템에 자바 스크립트 오류 또는 이상한 일이 없습니다.

jQuery를 사용하여 모든 것을 다시 쓸 수 있으면 좋겠지 만 지금은 시간이 없습니다. 무엇이이 문제의 원인 일 수 있습니까 ??


또 업데이트 - 나는 다른 브라우저 (FFX 3.0)에 내 코드를 테스트 할 수있었습니다하고 브라우저에 문제가되어야합니다 그래서이있다 일하고 있었다. 나는 Vista에서 Firefox 3.5b4를 실행 중이며, 지금은 모든 addons가 운이 좋지 않게 비활성화되어 시도했습니다. 어제 (동일한 브라우저 설정으로)이 사이트에서 일하고 있었고 전혀 문제가 없었기 때문에 여전히 나를 괴롭 히고 있습니다. ...

사실 저는 Addons 창을 살펴보고 Firebug가 여전히 사용 가능합니다. Firebug를 비활성화하면 완벽하게 작동합니다. 사용하도록 설정하면 문제가 발생합니다. Firebug 버전 1.40.a31

+0

어떤 Firefox 버전을 사용하고 있습니까? 어쩌면 Firefox 버그일까요? 파이어 버그에서와 똑같은 덤프를 얻지는 않습니다. –

+0

내 편집을 참조하십시오. 파이어 폭스 3.5beta4의 버그입니다. –

+0

베타 브라우저에 버그가있는 경우 놀라지 않을 것입니다. ;) –

답변

4

는 기형이다? 모든 것을 try-catch에 넣고 오류를 경고하려고 시도 했습니까?

권한 확인에 실패 했습니까? 해당 URL에 http-auth가 필요합니까?

편집 (이 경우에는 상태 변화가 있어야하지만, 나는 인정한다) :

내가 여기 정말 재미있는 생각을 가지고있다. 파이어 폭스 3.5 베타 4를 사용하고 있습니까? 나는 브라우저 기반 게임을위한 파이어 폭스 확장 기능을 개발하고 최근 이상한 행동을 발견했다. 내 확장 프로그램이나 방화범이 페이지에서 만든 아약스 요청을 관찰하면 스크립트를 생성하는 콜백은 결코 콜백되지 않습니다. 요청이 올바르게 관찰되고 방화 광과 내 확장 (처리 된 내용을 볼 수 있음)이 처리되지만 ... 페이지 자체가 요청에서 다시는 소리를 듣지 못합니다. 마치 블랙홀로 사라진 것처럼 말입니다.

불을 지르고 해제 (또는 적어도 해당 도메인에 대한 '순'을 듣고 전원 끄기) 다시 테스트 해보십시오

0

onreadystatechange가 작동을 멈추는 것은 거의 불가능합니다. '경보'기능이 어떻게 든 비활성화되었거나 무시 된 것일 수 있습니까? 페이지에서 눈에 보이는 변화를주기 위해 경고를 일부 코드로 대체하고 그 기능을 그런 식으로 점검 할 수 있습니까? (나는 알고있다, 그것의 스트레치 그러나 그것은 단지 그렇게 이상하게 보인다 onreadystatechange는 일하지 않을 것이다!)

+0

예, 전 onreadystatechange 전에 경고 ("foo")를 입력 해 보았습니다. 정상적으로 작동합니다. – nickf

+0

onreadystatechange가 작동하지 않으면 웹이 무너질 것입니다. XmlHttpRequest 객체가 응답을 받기 전에 삭제되거나 중단 될 수 있습니까? 복제 코드에 더 많은 것이 있습니까, 아니면 모든 것을 보여주고 있습니까? 어쩌면 당신의 파이어 폭스 설치가 손상 되었습니까? * 웃기는 * – Bruce

+0

요청한 도메인을 찾을 수없는 경우 상태가 변경되지 않지만 오류가 발생해야합니다. –

관련 문제