Jquery 는 IE7 에서$.ajax 솔 루 션 을 사용 할 수 없습니다.
// Create the request object; Microsoft failed to properly
// implement the XMLHttpRequest in IE7, so we use the ActiveXObject when it is available
// This function can be overriden by calling jQuery.ajaxSetup
xhr:function(){
return window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
},
다음은 이 jquery 의 원본 코드 버 전 성명
/*
* jQuery JavaScript Library v1.3.2
* http://jquery.com/
*
* Copyright (c) 2009 John Resig
* Dual licensed under the MIT and GPL licenses.
* http://docs.jquery.com/License
*
* Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009)
* Revision: 6246
*/
이 html 를 통 해'window.ActiveXObject'를 인쇄 한 결 과 를 통 해 IE6,IE7,IE8 이 모두 돌아 온 true 임 을 알 수 있 습 니 다.테스트 한 html 소스 코드 는(같은 디 렉 터 리 아래 에 index.jsp 페이지 가 있 으 며 내용 은 상 관 없 음)
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="javascript/jquery.js"></script>
<script type="text/javascript">
$(function (){
$.ajax({
url:"index.jsp",
success:function(){alert("success")},
error:function(){alert("error")}
});
//$("div").append("<font color='red'>window.ActiveXObject:</font>");
//$("div").append((window.ActiveXObject?"true":"false"));
//alert(typeof(new XMLHttpRequest()));
//alert(typeof(new ActiveXObject("Msxml2.XMLHTTP.4.0")));
//alert(typeof(new ActiveXObject("Msxml2.XMLHTTP")));
//alert(typeof(new ActiveXObject("Microsoft.XMLHTTP")));
});
</script>
</head>
<body>
<div></div>
</body>
</html>
상황 1:원본 코드 를 수정 하지 않 으 면 IE6 에서'success'라 는 힌트 를 꺼 낼 수 있 지만 IE7 은 아무런 힌트 도 없고 오류 알림 도 없다.상황 2:원본 코드 의 window.ActiveXObject 를?new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest(); window.ActiveXObject 로 변경 하 시 겠 습 니까?new XMLHttpRequest() : new XMLHttpRequest(); IE7 에 서 는'success'가 나타 나 는 알림 이 고 IE6 에 서 는 js 오 류 를 알려 줍 니 다.자세 한 내용 은'XML HttpRequest 대상 이 정의 되 지 않 은'두 가지 상황 에서 FireFox 는'success'를 정상적으로 알려 줄 수 있 습 니 다.버 전 은 FireFox 3.5.3 이 고 다른 브 라 우 저 는 모 릅 니 다.이 를 통 해 IE7 에 서 는 new XML HttpRequest()를 사용 하여 ajax 대상 을 초기 화 해 야 하고,IE6 에 서 는 new ActiveXObject("Microsoft.XML HTTP")를 사용 하지만 jQuery 소스 코드 에 서 는 IE7 의 초기 화 방법 을 호 환 하지 않 았 으 며,홈 페이지 의 호 환 설명 은 IE6+임 을 알 수 있다.설마 내 가 잘못 이해 한 것 이 냐,아니면 다른 것 이 냐?여러분 이 의견 을 좀 주 셨 으 면 좋 겠 습 니 다.jQuery 는 아주 좋 습 니 다.하지만 저 는 고객 에 게 반드시 IE6 를 사용 해 야 한다 고 요구 할 수 없고 IE7 을 포기 할 수 없습니다!마지막 으로 한 마디 더:prototype 최신 판 1.6.1 도 같은 문제 입 니 다.IE7 의 Ajax.Request 는 소 용이 없습니다.원본 코드 1130 줄 정도
var Ajax = {
getTransport: function() {
return Try.these(
function() {return new XMLHttpRequest()},
function() {return new ActiveXObject('Msxml2.XMLHTTP')},
//function() {return new ActiveXObject('Msxml2.XMLHTTP.4.0')},
function() {return new ActiveXObject('Microsoft.XMLHTTP')}
) || false;
},
를 수정 해 야 합 니 다.주석 부분 은 추가 적 인 수정 이 필요 합 니 다.그래 야 IE7 에서 이 ajax 요청 방법 을 사용 할 수 있 습 니 다.그러나 대충 보 세 요.이 안의 ajax 초기 화 는 new XML HttpRequest()를 사용 하여 만 든 것 입 니 다.즉,제 가 수정 하지 않 으 면 IE7 도 가능 할 것 입 니 다.주:마지막 으로 이 한 마디 더 많은 IE7 호 환 방법 은 인터넷 에서 검색 한 이상 이 바로 제 가 오늘 연구 한 결과 입 니 다.저 는 헷 갈 렸 습 니 다.도대체 이 IE6,IE7 과 IE8 이 전면적으로 호 환 되 는 jQuery 의 실현(FireFox 에 영향 을 주지 않 는 다 는 등)결론 이 나 면 IE7 에서 new XML HttpRequest()를 사용 하여 ajax 대상 을 초기 화 해 야 한 다 는 것 을 알 수 있 습 니 다.IE6 는 new ActiveXObject("Microsoft.XML HTTP")를 사용 합 니 다.그러면 prototype 에 있 는 것 은 어떻게 설명 합 니까?나 는 이미 헷 갈 렸 으 니,모두 가 하나,둘 을 지적 해 주 기 를 바란다!방금 XMLHttpRequest 생 성 방법 을 다시 검색 하 였 는데,마지막 으로 원본 코드 를 return window.XMLHttpRequest 로 변경 하 였 습 니까?new XMLHttpRequest() : window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest(); 예.드디어 해결 됐어.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Jquery에서 동일한 NAME 또는 id 행 삭제 작업 가져오기//Jquery 같은 수를 가져오고 줄 수와 인자를 삭제합니다. //ID'''또는this를 통해 본 줄의 두 번째 tdeq를 획득(1) 0부터 $("#"+id+"").parents("tr").find("td:eq(1...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.