그래서 저는 jQuery에 익숙하지 않고 탭이있는 html 페이지를 설정하려고합니다. 다음과 같이 각 탭은 다른 HTML 페이지를 표시해야합니다 :jQuery를 사용하는 AJAX 요청이 작동하지 않습니다.
<div id="tabs">
<a href="page1.html"><div class="tabdiv tabActive">Page1</div></a>
<a href="page2.html"><div class="tabdiv">Page2</div></a>
<a href="page3.html"><div class="tabdiv">Page3</div> </a>
<a href="page4.html"><div class="tabdiv">Page4</div></a>
</div>
<div class="tabscontent" id="ajax-content">
Default text
</div>
그래서 내가 원하는 내가 1 페이지를 클릭하면, page1.html이 div.tabscontent
에로드 될 것입니다. 이것은 내가 가지고있는 jQuery 코드이다.
$(document).ready(function() {
$("div#tabs a").click(function() {
alert(this.href);
$("#ajax-content").empty().append("Loading");
$("div#tabs div.tabdiv").removeClass('tabActive');
$(this).children('div.tabdiv').addClass('tabActive');
$.ajax({
url: this.href,
success: function(html) {
$("#ajax-content").empty().append(html);
alert("Success!");},
error: function() {
$("#ajax-content").empty().append("Didn't work");}
});
return false;
});
});
주 : 1) 나는 최신 JQuery와 2 첨부) i를 page1.html, page2.html 등은 위의 HTML 파일과 같은 폴더에 있습니다. 3) 나는 현지에서 일하고 있으며 Google 크롬, 파이어 폭스 및 오페라를 사용했으며 모두 "작동하지 않음"을 보여주는 탭이 있습니다. 심지어 내가 URL에 http://www.facebook.com을 참조해도 작동하지 않습니다. 도와주세요.
href가 작동하고 작동하는지 확인하기 위해 알림을 표시합니다. 예를 들어, page1 탭의 경우`file : ///u/b/user/Desktop/ajaxdemo/Page1.html '을 반환합니다.
AJAX 요청은 특별히 요청을 보내는 서버가 요청을 허용하지 않는 한 같은 출처 정책의 적용을받습니다. – Blender
정말 이런 일을 피할 수 있도록 dev 서버를 설정해야합니다. – Musa
@Blender 그의 URL에는 호스트 이름이 없으므로 기본 페이지와 동일한 서버로 이동합니다. – Barmar