2009-11-17 2 views
0

나는 아주 간단한 것을하고있다. 그러나 아직 작동하지 않는다. 아마 나는 뭔가를 놓치고있다.파일을 Ajax를 통해 div로 읽습니다. 내가 생각하는 작은 것을 놓치고있다.

나는 ajax를 통해 그리고 div로 텍스트 파일을 읽을 필요가있다. 나는 아약스를 통해 파일에 쉽게 쓸 수 있지만 읽을 수는 없다.

function ajaxLoader(url) { 
    if(document.getElementById) { 
    var x = (window.ActiveXObject) ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest(); 
    } 
    if(x) { 
    x.onreadystatechange = function() { 
     if(x.readyState == 4 && x.status == 200) { 
     el = document.getElementById('content'); 
     el.innerHTML = x.responseText; 
     } 
    } 

    x.open("GET",url, true); 
    x.send(null); 
    } 
} 

<a class="blocklink" href="#" id="readg" onclick="ajaxLoader('guestBook.txt')">Read The Guestbook</a></p> 

<div id="content" style="width:600px;"> 

나는 모든 일이에 붙어 있었어요을 : 여기에 내가 가진 것입니다. 나는 같은 코드를 모두 사용할 수 있으며 div 파일에는 일반 html 파일을 출력 할 수 있지만이 .txt 파일은 출력 할 수 없다. txt 파일에는 필요한 모든 읽기 쓰기 권한이 있습니다. 감사!

마커스

답변

0

봅니다 if(document.getElementById)

당신이 당신의 .responseText 속성을 경고 할 수 있음을 제거하는 방법? 그것은 동기 패턴을 사용하여 작동합니까?

+0

if 문을 통과 한 것으로 보입니다. 내가 x.responseype을 경고 할 때 나는 아무 것도 얻지 못한다 ... 그것은 비어있다. 나는 아약스가 좋지 않다. 그래서 그것이 무엇인지에 대해 확신하지 못한다. 동기 패턴에 대해서도 확실하지 않습니다. 어떤 아이디어? – Marcus

0

클릭 한 링크가 추적되지 않도록 ajaxLoader 함수는 false를 반환해야합니다.

+0

click 이벤트에서 함수 결과도 반환하지 않으면 도움이되지 않습니다. – Guffa

0

로컬 코드를 실행하는 경우, 당신은 상태 0 대신 모두 처리하려면 상태 (200)를 얻을 것이다, 당신은 사용할 수 있습니다 : 당신이 링크를 클릭하면

또한
if (x.readyState == 4 && (x.status == 0 || x.status == 200)) 

, 링크가 될 것입니다 당신이 그것을 취소하지 않았을 때 따라 갔다. href가 "#"이므로 동일한 페이지의 맨 위로 이동하지만 여전히 문제를 일으킬 수 있습니다. (한 부작용은 링크를 누르면 페이지 상단으로 스크롤 것입니다.) 클릭 이벤트에서 false를 반환 다음되는 링크를 취소 난을 삭제하지 ..

onclick="ajaxLoader('guestBook.txt');return false;" 
+0

괜찮 았으므로 반환 값을 false로 추가했지만 여전히 작동하지 않습니다. 아이디어가 있으십니까? – Marcus

+0

또한 readystate에 경고를 던졌습니다. – Marcus

0

그것을 알아 냈어 캐시 ... 캐시가 다시 승리합니다!

관련 문제