调用按钮上的.asp页面点击和jQuery Ajax
问题描述:
我有一个.asp页面,它基于数据库中的数据创建和优化。现在我需要打开这个页面,并使用jquery ajax单击按钮创建excel。我试过的代码如下:调用按钮上的.asp页面点击和jQuery Ajax
$(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数据库运行了查询。它获取大约10,000条记录。所以我在where条件中加了一个ROWNUM < = 30。现在我在AJAX调用中没有收到任何错误。状态是200.但.xls文件未生成。
请让我知道我在这里做的错误。
答
我解决了这个问题,方法是移除ajax调用并在action标签中插入我的按钮,其中action =“ExportExcel.asp”。感谢@SearchAndResQ指出。我的座右铭是不导航到ExportExcel.asp页面。所以试图用Ajax做。 @mjw指出了Response.BinaryWrite。我没有尝试过。我会尽力而为,保留在我的兵工厂里会很好。
如果直接调用ExcelExport.asp页面,会发生什么情况?你也有服务器错误吗? – mjw
检查你的URL路径。并在后面插入一个中断点。 –
没有,如果我直接打电话给我的网页我没有得到错误。所有页面都在同一个文件夹中。 –