2015-01-13 5 views
1

모든 나가는 요청에 대해 사용자 지정 요청 헤더를 설정하여 응용 프로그램을 통해 만들어진 모든 요청을 추적하려고합니다. I이 사용을 달성 할 수 있었다 : DOM 요소의 src 속성 (즉 iframe이, 비디오 객체 등)의 요청을 개시 할 때DOM 요소가 시작한 요청에 대한 요청 헤더 설정

$ajax.Setup(
    beforeSend: ... 

하지만, I는 문제에 부딪쳤다. 검색 할 때 찾았습니다 : How to set custom http headers when changing iframe src? 그러나 이것을 시도 할 때 다운로드 대화 상자를 시작하지 못했습니다. 다음과 같이

var request = $.ajax({ 
    context: this, 
    url: URI, 
    type: 'GET', 
    statusCode: { 
     200: function(data) { 
      var id = '#download-iframe'; 
      var $iframe = $(id); 
      if($iframe.length === 0) { 
       $iframe = $('<iframe>') 
       .attr('id', 'download-iframe') 
       .appendTo('body'); 
      } 
      $iframe.contents().find('html').html(data); 
     } 
    } 
}); 

요청하는 모습에 대한 응답 헤더를 :

Content-Disposition:attachment; filename="PDF.pdf" 
Content-Length:86712 
Content-Type:application/pdf;charset=UTF-8 

는 iframe에 원시 데이터를 표시하지만, 다운로드를 시작하지 않았다 코드처럼 보였다.

A) (선호) DOM 요소 src 또는 B)를 설정하여 요청 헤더를 다른 방식으로 설정합니다. 시작하려면 다운로드 대화 상자를 가져옵니다.

+0

를 작동 합성 +? 그건 당신에게 다운로드 옵션을 제공하지 않습니다. iframe에 자체적으로로드되도록합니다. src를 PDF를 보내는 URL로 설정하여 iframe을 만들고 삽입합니다. 나는 당신의 문제에 대한 설명으로 혼란 스럽다. 그래서 명왕성의 날씨에 대해 이야기하고 있을지도 모른다. ... –

+0

그게 내가 원래하고 있었던거야. 그때 src는 URL로 설정했지만, DOM은 자바 스크립트를 우회하여 요청을 시작했다. 그래서 ajaxSetup에 구성된 요청 헤더는 결코 설정되지 않았다. – user856354

+0

그런 경우 작동하지 않습니다. 그러나 요청 헤더 대신 URL에 매개 변수를 추가하는 것이 좋습니다. 그래서 당신은 여전히 ​​그것을 추적 할 수 있습니다. 어쨌든 iframe에 내용을 쓰는 것은 다운로드가 아닙니다. 브라우저가 어떻게 파일을 다운로드하고 저장할지 제어하는 ​​방법은 무엇입니까? –

답변

0

B) 시작하려면 다운로드 대화 상자를 가져옵니다.

blob URI + <a download ...> 클릭 이벤트가 아마 당신은 자바 스크립트를 사용하여 iframe이에 응답을 쓰기