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