2011-02-15 2 views
2

파일에 아약스 응답을 작성하는 방법을 찾아야합니다. 응답은 XML 문자열입니다.이 문자열은 나보다 더 잘됩니다.파이어 폭스에서 ajax 응답을 저장하는 방법

내 웹 페이지에서 무언가를 클릭하고 파일로 반환되는 XML을 저장하고 싶습니다.

그러나 Javascript가 로컬 파일에 액세스 할 수 없다는 사실을 알고 있기 때문에 PHP가 처리 할 다른 서버로 데이터를 보낼 수도 있습니다.

이제 내가 붙어있는 곳은 자바 스크립트와 차단입니다. Firefox의 greaseMonkey를 사용하여이 작업을 수행 할 수 있습니다. 그렇다면 어떻게? 감사!

편집 : 설명 중 일부입니다.

  • 출력을 만드는 스크립트는 저에게 쓰여지지 않습니다.
  • 네, 파이어 버그의 데이터를 볼 수 있습니다. 데이터를 해석해야합니다.
  • 여기에는 많은 요청이 있습니다. 약 2 초마다 약 1 번이므로 수동으로 복사하는 것은 옵션이 아닙니다.

아직도 도움이 되나요?

답변

1

자세한 내용을 제공해야합니다. 대상 페이지에 대한 링크가 가장 좋습니다.
jQuery를 사용하는 페이지가 있습니까?, 다른 라이브러리입니까? 또는 맞춤 XMLHttpRequest()이 호출됩니까? AJAX와 데이터가 페이지에 기록되는 경우, 컨테이너 요소에 DOMSubtreeModified 이벤트 리스너를 부착 ...

어쨌든, 간단한 접근 방식은 작동 할 수 먼저 시도합니다. 다음과 같음 :

document.getElementById ("ContainerID").addEventListener ("DOMSubtreeModified", YourFunction, false); 

function YourFunction() { 
    //--- Get the target node's inner HTML and send it to our server. 
} 

DOMSubtreeModified events work fine in FF and Chrome, the two main browsers for Greasemonkey

데이터가 이 아니고이 페이지에 기록 된 경우 AJAX를 가로채는 가장 좋은 방법은 대상 페이지가 jQuery와 같은 라이브러리를 사용하는지 여부에 따라 달라집니다.

AJAX를 가로채는 일반적인 방법은 this SO question (및 기타)에서 볼 수 있습니다.

당신이 말한대로 데이터를 가지고 있으면 자동으로 파일에 쓰려면 GM_xmlhttpRequest()을 사용하여 제어하는 ​​서버로 데이터를 보내십시오.

0

왜 이렇게 할 수 없습니까?

서버 측의 파일에 AJAX 응답을 저장 한 다음 다운로드 할 수 있도록 링크를 제공합니다.

0

방화범이 끌려도 도움이됩니다. 몇 가지 형식으로 각 응답을 매우 편리하게 볼 수 있으며 결국 복사/저장합니다.

0

정상 (비 AJAX) 요청을 사용하고 Content-Disposition: attachment; filename="foo.xml" 헤더를 응답에 추가하십시오.

0

XML을 저장하려는 경우 AJAX를 사용하는 이유는 무엇입니까? location.href를 "Content-disposition : attachment"헤더를 보내고 응답 본문에 XML을 제공하는 PHP 스크립트의 위치로 설정하기 만하면됩니다. AJAX는 완전히 잘못된 도구로 보입니다.

관련 문제