2012-08-23 4 views
0

클릭하면 서버에서 파일을 다운로드하는 coldfusion 페이지를 처리하는 링크가 있습니다. URL에 직접 파일에 액세스하면 정상적으로 작동하므로 해당 부분이 작동하고 있음을 알 수 있습니다. 다음 단계는 Ajax를 도입하여 상호 작용이 사용자에게 원활하게 이루어 지도록하는 것이다. 이것은 (이벤트 핸들러가 초기 페이지로드라고합니다) 아약스 호출 내 이벤트 핸들러 :jquery 및 coldfusion을 사용하는 ajax 파일 다운로드

function fileHandler(){ 
    $('#attachment').click(function(e){ 
     e.preventDefault(); 
     $.ajax({ 
      type:"get", 
      url:"test.cfm", 
      data:{name:"john"} 
     }); 
    }); 
} 

그러나 나는 아무것도 얻을 수 없다. jQuery의 .ajax()를 처음 사용합니다. 나는 일반적으로 .get() 및 .load()를 사용합니다. 설명서를 확인했는데 구문이 올바른 것 같습니다. 누구든지 브라우저 프롬프트에서 파일을 저장하지 못하는 이유를 알고 있습니까? 감사!

답변

3

Ajax (XMLHTTPRequest)를 통해 "다른 이름으로 저장"대화 상자를 트리거 할 수 없습니다. Ajax 호출은 서버에서 자바 스크립트 애플리케이션으로 데이터를 리턴한다. Ajax 사용의 요점이다. 파일을 다운로드하고 컴퓨터에 저장하는 것은 다른 유스 케이스 일뿐입니다. 즉, 사용자가 아닌 "브라우저 작업"입니다.

숨겨진 iframe을 페이지에 추가하여 "문제"를 해결하면 "다른 이름으로 저장 ..."대화 상자가 표시되고 사용자는이를 알 수 없습니다. 다른 탭에서 주소를 여는 것과 같습니다. 숨겨진 주소입니다.

$('body').append(
    $('<iframe>', { 
     src: 'test.cfm?name=john' 
    }).hide() 
); 
+0

답장을 보내 주셔서 감사합니다. 왜 이것이 어딘지 설명하는 문서가 있습니까? 또한 이것은 양식 제출을 의미합니다. 맞습니까? 나는 이미 내 양식을 다른 곳에서 보내고있다./ –

+0

나는 이미 페이지에 iframe을 가지고있다. 이 방법으로 요소를 선택하면 iframe이 이동하고 복제되지 않습니다. 나는 그것을 할 수 없다. 이미 가지고있는 iframe을 선택하고 src 특성을 설정하면 대신 작동합니까? –

+0

방금 ​​해봤으므로 효과가있었습니다. 당신의 도움을 주셔서 감사합니다! –