2013-05-27 2 views
1

다음과 같은 시나리오를 실현해야합니다 : 버튼과 텍스트 상자가있는 html 페이지가 있습니다. 단추를 클릭하면 텍스트 상자 데이터에서 xml을 만들고이 xml을 서버에 보내려고합니다. 서버가이 xml을 첨부 파일로 반환하기 때문에 다른 이름으로 저장 대화 상자가 표시되며이 xml을 로컬로 저장할 수 있습니다. 나는 서버에 XML을 보내 다음 JQuery와 기능이 있습니다자바 스크립트에서 대화 상자로 저장 열기

 function GetXml() { 
      var xmlData = '{"xml": "<test>test</test>"}'; 
      var contentType = "application/json"; 
      var eDoc = ""; 
      $.ajax({ 
       type: 'POST',       
       url: 'http://localhost/xmlservice.svc/rest/GetXmlToSave', 
       data: xmlData, 
       contentType: contentType, 
       success: function (result) {       
        alert(result); 
       }, 
       error: function (result) {      
        alert(result); 
       }, 
       async: false,     
      }); 
      return result; 
     } 

을하지만 난 서버에서 반환 된 XML을 자바 스크립트에서 대화 이름으로 저장을 강제로 뜨거운 모른다.

<form action='http://localhost/xmlservice.svc/rest/GetXmlToSave' method="POST" runat="server" >         
      <input type="submit"/> 
     </form> 

을하지만이 시나리오에서 나는 클라이언트 측에서 XML을 만들 수 없습니다 :

나는 고전 제출 버튼을 실현할 수 있습니다.

자바 스크립트에서 다른 이름으로 저장 대화 상자를 강제로 표시 할 수 있습니까?

감사합니다.

+0

가능한 복제본 [Jquery와 Ajax를 사용하여 ASP.Net에서 파일 저장하기] (http://stackoverflow.com/questions/3111750/using-jquery-and-ajax-to-save-a-file-in) -asp-net) – Quentin

+0

참고 사항 [this] (http://stackoverflow.com/questions/15637758/django-invoking-browsers-save-as-from-an-ajax-invoked-view), [this] (http : //stackoverflow.com/questions/10256050/generate-save-as-dialog-box-with-ajax-request-in-ext-js) 및 [this] (http://stackoverflow.com/questions/7684297/) 콘텐츠 처분과 첨부 파일 없음 - 아약스 응답을위한) – Quentin

+0

참고 : http://stackoverflow.com/questions/13405129/javascript-create-and-save-file –

답변

0

답변 및 의견에서 고전적인 양식 제출을 사용하기로 결정했습니다. 모든 양식을 서버에 제출하고 xml은 서버 측에서 구성됩니다. 제안 된 솔루션 중 일부는 매우 좋아 보이지만 내 대상 프로덕션 환경에는 몇 가지 제한 사항이 있습니다. 예 : 외부 구성 요소 (예 : 플래시)를 설치할 수 없습니다. 솔루션은 이전 IE 8 브라우저에서도 작동해야합니다 (모든 새로운 HTML 5 기능을 사용할 수는 없습니다 => jsfiddle를 사용할 수 없음). 그리고 그것은 고전적인 자바 스크립트가 특히 보안상의 이유로 대화 상자로 저장을 지원하지 않는 것 같습니다.

관련 문제