2012-01-03 60 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

這不會發生。它可以發回的URL到PDF打開一個新的窗口或框架/ iframe – mplungjan 2012-01-03 20:24:04

回答

1

瀏覽器通常在請求頁面時處理MIME類型。因爲您使用的是AJAX,所以您允許AJAX請求處理響應。瀏覽器忽略它。

您需要通過使用document.location=將PDF URL傳遞給瀏覽器,以便瀏覽器「自然」處理請求。

+0

您的建議確實工作,而不是使用AJAX和JSON,我使用了,它的工作原理。 '$('#lessonsTable_filter')。append('Print results to report');'不知道這是否是更好的方法 – marknery 2012-01-03 20:32:33

+0

這一切都取決於用戶的期望。我很高興你能工作。 – 2012-01-03 20:36:06