2012-03-13 3 views
2

지금 당장 jquery ajax를 사용하여 양식을 통해 호출에서 호출로 변경되는 params로 전화를 걸고 xend 파일을 검색하는 webapp가 있습니다. . 개인 응용 프로그램에 대해 다른 확장명을 가진 파일에 xml 데이터를 저장하려고합니다.아약스에서 가져온 데이터를 열어 자동으로 다운로드

기본적으로 사용자가 버튼을 클릭 할 수있게하려면 에 반환 된 ajax xml 데이터가 포함 된 파일을 "열거 나 저장"하라는 메시지가 자동으로 표시됩니다.

나는 PHP를 사용하여 원시 http 헤더를 보내는 일에 전념했지만, 제대로 작동하도록하는 방법을 알 수 없다. 나는 이것 모두를 자바 스크립트와 jquery로 작성하고있다.

유일한 코드는 (1) Ajax 호출 만들기, (2) HTML 페이지에 XML 작성, (3) HTML 페이지 열기. 당신이 수행 할 수 있어야한다 당신이 다시 사용자를 위해 사용할 수 있도록하기 전에 검색 데이터, 함께 놀러 필요가없는

var format = function() { 
    $("button#format").click(function() { 
    $("#form").submit(); 
    $.ajax({ 
     url: "find", 
     beforeSend: function (xml) { 
     xml.overrideMimeType("application/octet-stream; charset=x-user-defined"); 
     }, 
     data: $("form#form").serialize(), 
     dataType: "html", 
     success: function(xml) { 
     xmlWindow = window.open("download.ivml"); 
     xmlWindow.document.write(xml); 
     xmlWindow.focus(); 
     }, 
     error: function(request) { 
     $("#webdiv").html(request.responseText); 
     } 
    }); 
    }); 
}; 
+0

중복 : http://stackoverflow.com/questions/365777/starting-file-download-with-javascript – dragon

답변

0

는 AJAX 패러다임으로 이런 일을 강제 할 필요가 없다 PHP에서.

<form id="format" action="download.ivml" target="_blank"> 
... 
</form> 

그리고 JQuery와의

마지막으로 내 서버에 이상한 URL download.ivml

Options +FollowSymLinks 
RewriteEngine on 
RewriteRule ^(.*)download.ivml$ /path/to/where/I/process/the/request 
을 처리하기 위해 .htaccess 파일을 사용하여이

​$('#format')​.submit(function(){ 
    // tweaking the post data, otherwise this whole block is not needed. 
    return true;  
})​; 

같은 action 수정 : 그래서 나는 같은 것을 할 것

이 마지막 .htaccess 파일의 구문에 대해서는 잘 모릅니다.

+0

중복 되었기 때문에 jquery 부분을 편집했습니다. 양식을 제출하기 전에 데이터를 수정하지 않으면 jquery 블록이 필요하지 않습니다. –

관련 문제