0

我目前有这个带有两个链接的标记,我正试图通过 AJAX 调用这两个链接。

我有一个搜索,它根据使用的开始和结束日期运行查询,并且我有一个导出到 Excel 链接,我试图下载一个使用开始和结束日期的 Excel 文档。

除了#export $.ajax接到下载 Excel 文档的电话外,一切正常。

如何让 jQuery 下载 Excel 文档?

<a href="#" class="buttonH bBlue" id="export">Export to Excel</a>
<a href="#" class="buttonH bBlue" id="search">Search</a>
<div class="headInput" id="reportsDateSearch">
    <input type="text" name="start_date" placeholder="<%= @end_date %>" class="datepicker" id="endDate" />
    <input type="text" name="end_date" placeholder="<%= @start_date %>" class="datepicker" id="startDate" />            
</div>

jQuery AJAX 调用:

// This call gets the data based on the start and end date used
    $('#search').on('click', function() {
        $.ajax({
            type: "GET",
            beforeSend: function(xhr) { 
                xhr.setRequestHeader("Accept", "text/javascript");
            },
            url: '<%= reports_affirmative_action_path %>',
            data: {start_date: $('#startDate').val(), end_date: $('#endDate').val()}
        }, null, 'script');
    });


// This call gets the data based on the start and end date used, but i'm trying to get it to return the xlsx format.
    $('#export').on('click', function() {
        $.ajax({
                type: "GET",
                beforeSend: function(xhr) { 
                    xhr.setRequestHeader("Accept", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
                },
                url: '<%= reports_affirmative_action_path(:format => :xlsx) %>',
                data: {start_date: $('#startDate').val(), end_date: $('#endDate').val()}
        }, null, 'script');
    });
4

1 回答 1

1

最简单的方法是只更新单击的锚标记的 href。

$('#export').on('click', function() {
    this.href = "<%= reports_affirmative_action_path(:format => :xlsx) %>?" + 
        $.param({start_date: $('#startDate').val(), end_date: $('#endDate').val()});
});
于 2013-04-17T15:14:42.730 回答