2012-01-03 3 views
1

jQueryを使用してJSONをサーバーに送り返し、pdfレポートを送り返しますが、pdfのレスポンスヘッダーとjavascriptをダウンロードしていません。返信pdf jquery

$('#log-report').live("click", function() { 
var query = { 

    'projectID': $('#ProjectID').val(), 
    'lessontypeID': $('#lessonTypeID').val(), 
    'phaseID': $('#phaseID').val(), 
    'assetTypeID': $('#assetTypeID').val(), 
    'dateFrom': $('#dateFrom').val(), 
    'dateTo': $('#dateTo').val() 
}; 

$.ajax({ 
    url: '/Report/getQueryPdf', 
    data: query, 
    type: 'GET', 
    contentType: 'application/json, charset=utf-8' 

}); 
}); 

Cache-Control:private 
Connection:Close 
Content-Disposition:attachment; filename=Lessons_Learned_Report.pdf 
Content-Length:77211 
Content-Type:application/pdf 
Date:Tue, 03 Jan 2012 19:47:44 GMT 
Server:ASP.NET Development Server/10.0.0.0 
X-AspNet-Version:4.0.30319 
X-AspNetMvc-Version:3.0 
+0

これは起こりません。それは新しいウィンドウまたはフレーム/ iframeで開くためにPDFにURLを返信することができます – mplungjan

答えて

1

通常、ページの要求時にブラウザがMIMEタイプを処理します。あなたはAJAXを使用しているので、AJAXリクエストが応答を処理できるようになります。ブラウザはそれを無視します。

ブラウザが「自然に」要求を処理できるようにするには、document.location=を使用してpdf URLをブラウザに渡す必要があります。

+0

あなたの提案はAJAXとJSONを使用する代わりにを使用して動作し、動作します。 append( 'Print results to report'); 'それがより良いアプローチであるかどうかわからない – marknery

+0

すべてはユーザーの期待に依存します。私はあなたがそれが働いてうれしいです。 –