按钮点击和jquery调用.asp页面Ajax

时间:2017-06-20 13:36:58

标签: jquery asp-classic

我有一个基于数据库数据创建和优秀的.asp页面。现在我需要打开这个页面并使用jquery ajax创建excel单击按钮。我尝试过的代码如下:

$(document).ready(function(){
            $("#export_excel").on("click", function(){
                alert("Calling");
                $.ajax({
                    type: "GET",
                    url: "/ExcelExport.asp",
                    success: function(data) {
                        if(data) {
                            console.log(data);
                        }
                    },
                    error: function() {
                        console.log("error");
                    }
                });
            });
        });

一段时间后,我收到500内部错误。任何人都可以指导我如何实现这一目标。

ExportExcel.asp

<%@ LANGUAGE="VBSCRIPT"%>
<!--#include file="ADOVBS.inc"-->
<!--#include file="IASUtil.asp"-->
<!--#include file="includes\cdsconnection.inc"-->
<%
    Response.ContentType = "application/vnd.ms-excel"
    Response.AddHeader "Content-Disposition", "attachment; filename=Export.xls"
    theSQL = Session("RPT")

    Set RS = Connection.Execute(theSQL)
%>
    <html>

    <head>
        <title>CDS Return Report Anticipated</title>
    </head>

    <body>
        <table border="1">
            <tr>
                <th>
                    Customer Name
                </th>
                <th>
                    Dispute ID
                </th>
                <th>
                    Dispute Date
                </th>
                <th>
                    INVOICE NUMBER
                </th>
                <th>
                    CUST PO NUMBER
                </th>
                <th>
                    DISPUTE AMOUNT
                </th>
                <th>
                    TMP ORDER NUMBER
                </th>
                <th>
                    STATUS DESCRIPTION
                </th>
                <th>
                    DISPUTE CLS DATE
                </th>
                <th>
                    ROOT CAUSE DESCRIPTION
                </th>
                <th>
                    NOTES
                </th>
                <th>
                    DMRM
                </th>
                <th>
                    ITEM ID
                </th>
                <th>
                    DATE RECEIVED
                </th>
                <th>
                    ORDER NUMBER
                </th>
                <th>
                    SPECREQ
                </th>
                <th>
                    ITEM NUMBER
                </th>
                <th>
                    DIS COMCODE
                </th>
                <th>
                    DIS QUANTITY
                </th>
                <th>
                    QTYRCVD
                </th>
                <th>
                    DIS_EXT_PRICE
                </th>
            </tr>
            <% DO UNTIL RS.eof  %>
                <tr>
                    <td>
                        <%= RS("CUSTOMER_NAME") %>
                    </td>
                    <td>
                        <%= RS("DISPUTE_ID") %>
                    </td>
                    <td>
                        <%= RS("DISP_DATE") %>
                    </td>
                    <td>
                        <%= RS("INVOICE_NUM") %>
                    </td>
                    <td>
                        <%= RS("CUST_PONUM") %>
                    </td>
                    <td>
                        <%= RS("DISP_AMOUNT") %>
                    </td>
                    <td>
                        <%= RS("TMP_ORDERNUM") %>
                    </td>
                    <td>
                        <%= RS("STATUS_DESCRIPTION") %>
                    </td>
                    <td>
                        <%= RS("DISP_CLS_DATE") %>
                    </td>
                    <td>
                        <%= RS("ROOT CAUSE DESCRIPTION") %>
                    </td>
                    <td>
                        <%= RS("NOTES") %>
                    </td>
                    <td>
                        <%= RS("DMRM") %>
                    </td>
                    <td>
                        <%= RS("ITEM_ID") %>
                    </td>
                    <td>
                        <%= RS("DATERCVD") %>
                    </td>
                    <td>
                        <%= RS("ORDERNUM") %>
                    </td>
                    <td>
                        <%= RS("SPECREQ") %>
                    </td>
                    <td>
                        <%= RS("ITEM_NUM") %>
                    </td>
                    <td>
                        <%= RS("DIS_COMCODE") %>
                    </td>
                    <td>
                        <%= RS("DIS_QUANTITY") %>
                    </td>
                    <td>
                        <%= RS("QTYRCVD") %>
                    </td>
                    <td>
                        <%= RS("DIS_EXT_PRICE") %>
                    </td>
                </tr>
                <% RS.MoveNext 
                LOOP%>
                <%Response.End()%>
        </table>
    </body>

    </html>

RPT是包含查询的会话变量。出于安全原因,我无法在此处提供完整查询。但是我已经针对我们的oracle DB运行了查询。它获取大约10,000条记录。所以我在where条件中添加了一个ROWNUM&lt; = 30。现在我在AJAX调用中没有收到任何错误。状态为200.但是没有生成.xls文件。

请让我知道我在这里犯的错误。

1 个答案:

答案 0 :(得分:0)

我通过删除ajax调用并在带有action =&#34; ExportExcel.asp&#34;的表单标记中插入我的按钮来解决这个问题。感谢@SearchAndResQ指出这一点。我的座右铭是不要导航到ExportExcel.asp页面。所以试着用Ajax做。 @mjw指出了Response.BinaryWrite。我没试过。我会尝试,保持我的武器库会很好。