문제: jQuery 컨트롤의 BUG
$.ajax를 사용할 때 오류가 발생합니다. 이 오류는 IE7에서만 발생합니다. IE6 및 IE8에서는 정상입니다. 오류 메시지는 다음과 같습니다.
공식 포럼 지침:
http://forum.jquery.com/topic/object-doesn-t-support-this-property-or-method-from-jquery-1-4-1-in-ie7-only
http://dev.jquery.com/ticket/6498
http://dev.jquery.com/ticket/6314
해결책:
jquery-1.4.2.js를 수정하세요.
포럼에서 누군가가 제안한 수정 방법을 테스트해 보았는데 효과가 있었습니다.
안녕하세요. jQuery 버그 6314(http://dev.jquery.com/ticket/6314) IE7에서 "기본 XMLHTTP 지원 활성화"가 선택된 경우(도구 > 인터넷 옵션 > 고급 탭 > 보안 섹션 내부) 이 오류가 표시됩니다. 옵션을 선택 취소/비활성화하면 오류가 해결되는 것 같습니다.
그러나 모든 웹사이트 사용자에게 해당 옵션을 선택 취소하라고 지시할 수는 없으므로 다음 코드도 문제를 해결하는 것 같습니다.
축소되지 않은 jQuery에서 다음 줄을 찾으세요.
try {
var oldAbort = xhr.abort;
xhr.abort = function() {
if ( xhr) {
oldAbort.call ( xhr ) ;
}
onreadystatechange( "abort" );
} catch(e) { }
다음 코드로 바꾸세요. 🎜>try {
var oldAbort = xhr.abort;
xhr.abort = function() {
if ( xhr) {
if (oldAbort.call === 정의되지 않음) {
oldAbort() ;
} else {
oldAbort.call( xhr )
}
}
onreadystatechange( "abort" )
} catch(e ) { }
문제는 이 포럼의 다른 사용자가 언급한 대로 xhr(XMLHTTP) 개체가 기본 IE 개체이므로 xhr.abort 함수의 중단 함수가 수행하는 문제라고 생각합니다. 통화를 지원하지 않습니다.