시작 코드는
$입니다. ajax({
type: "get",
url: "Database/App_all.xml",
dataType: "xml",
timeout: 2000,
beforeSend: function () { },
성공: 함수 (xml) {
$(xml).find("app[id='id-1']").find("auther").appendTo($("#contain "));
},
오류: function () {
alert("ajax failed!");
}
});
그거 App_all에서 xml 파일에서 ID가 "id-1"인 항목을 찾고 해당 하위 노드에서 계속해서 auther 태그를 찾은 다음 원하는 ID가
인 div에 콘텐츠를 추가합니다. xml에서 찾으려면 내용은
cocept입니다. cocept 필드를 꺼내서 컨테이너에 넣으려고 합니다
결과적으로 이 코드는 Firefox에 적용됩니다. 그리고 Opera에서는 작동하지 않아서 공식 jQuery 포럼에 가서 StackFlowover
포럼에 질문을 했습니다. 후자의 누군가가 다음과 같이 대답했습니다.
나는 확실히 사용하고 있었습니다. 불과 5시간 전에 사무실에서 Chrome을 사용했는데 그런 문제가 없었습니다.
여기 SO에서도 사용한다고 생각하는데 Chrome의 jQueryUI에는 문제가 없는 것 같습니다. 사용하는데 문제가 없다고 하더군요. 하지만 나 자신의 문제이기도 합니다. 나중에 누군가가 나에게 더 복잡한 제안을 했습니다.
크롬이나 사파리를 사용해야 합니다. JS 오류를 추적하고 실제 AJAX 요청을 추적하기 위한 내장 개발자 도구(ctrl Shift i)
코드가 document.ready에 포함되어 있습니까? 또한 출력을 시도합니까? 성공 콜백 라인 뒤에 뭔가가 있습니다.
서버에서 반환한 XML 파일의 잘못된 MIME 유형이 원인일 수 있습니다.
크롬 또는에서 확인할 수 있습니다. Safari의 내장 개발자 도구 - xml 리소스를 선택할 때 헤더 탭을 찾으세요.
실제 문제인 경우 올바른 MIME을 반환하려면 웹 서버 구성(기본 구성 또는 Apache의 경우 .htaccess)을 조정해야 할 수도 있습니다. -type
결국 jquery ajax 프레임워크를 혼자 배우기 시작했는데... 이렇게 어려운 문제에 부딪치게 되니 정말 귀찮네요...
그런데, 부주의로 인해 발견, 문제가 해결되었습니다...
Firebug를 사용하여 성공 후 페이지 요소 상태를 확인한 결과 다음을 발견했습니다.
< ;div id="contain">
cocept 🎜>
prettyTo를 사용하여 직접 삽입하는 방식이라는 것을 문득 깨달았습니다. 태그 이름을 삽입해도 크롬이나 사파리가 인식하지 못하는 게 당연합니다(다른 측면에서 보면 파이어폭스는 엄청 강력합니다...) 그래서 수정된 코드는
$("#contain").html($(xml).find( "app[id='id-1']").find("auther").text())
}
먼저 필수 요소의 text() 값을 빼낸 후, html() 메소드를 이용해 컨테이너에 삽입하여 html을 수정하면 끝! 모든 테스트 통과