jQuery를 시작하면서 간단하게 .load()를 사용하여 기본 페이지에 외부 HTML를 삽입하는 등의 일을 당황스럽게하는 데 문제가 있습니다.jQuery load() 메서드의 문제
여기에 메인 페이지의 :
<html>
<head>
<script src="js/jquery-latest.min.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript" charset="utf-8">
$(document).ready(function(){
$(".log").ajaxError(function() {
$(this).text('Ajax error.');
});
$('.result').load('external.html', function() {
$('.log').text('Loaded.')
});
});
</script>
</head>
<body>
<div class="log">
</div>
<div class="result">
</div>
</body>
</html>
그리고 여기 external.html입니다 ".로드 '브라우저에서이 페이지를 열 때
<p>Some external content!</p>
가, .log div에 삽입되지만 외부 HTML은 .result div에 삽입되지 않습니다. 또한 external.html을 삭제하거나 파일의 이름을 변경하더라도 "로드 됨"이라고 표시됩니다. 파일을 찾을 수 없으면 Ajax 오류가 발생하지 않아야합니다. .load()가 데이터를 가져 오는 것 같지 않습니다.
편집 : chrissr의 제안을 바탕으로, 나는 코드 변경 : "모든 것이 잘 작동"이 프로그램을 실행할 때
$(".result").load("external.html", function(response, status, xhr) {
if (status == "error") {
var msg = "Sorry but there was an error: ";
$(".log").html(msg + xhr.status + " " + xhr.statusText);
} else {
var msg = "Everything worked fine!";
$(".log").html(msg);
}
});
, 그것은 삽입을 .log div에.
편집 2 : Firefox에서 시험해보기 만하면됩니다. (전 크롬을 사용하고있었습니다). jQuery가 Chrome에서 작동한다고 생각했습니다.
편집 3 : 문제가 해결되었습니다. 파일을 로컬에서 여는 중입니다 (file : //처럼). 나는 이것이 보안 문제 또는 뭔가를 일으키는 것 같아요. 어쨌든, 지금 크롬에서 테스트를 원한다면 먼저 웹 서버에 던져야한다는 것을 알았습니다.
FireFox FireBug 확장 프로그램을 사용하여 작성중인 ajax 요청을 검사하십시오. 이렇게하면 요청이 발생하면 요청을 표시하고 요청 인수와 헤더 및 응답 본문과 헤더를 표시합니다. 이렇게하면 잘못 될 곳을 강조 표시합니다. –