从javascript调用asp经典函数时出错

时间:2013-09-02 16:34:12

标签: jquery asp.net asp-classic

我试图从jQuery ajax调用经典的ASP函数,但它给出了404错误。我想在这个javascript代码中返回jSON中的记录:

$.ajax({
    type: "POST",
    url: "../dbFile.asp/GetAllRecords",
    data: {"Id"="10"},
    error: function(XMLHttpRequest, textStatus, errorThrown){
        alert(textStatus);
    },
    success: function(result){
       alert("success");
    }
});
return false;
});

我在asp经典文件中的vb脚本函数是

Function GetAllRecords()
    dim cmd, rs
    set cmd=Server.CreateObject("ADODB.Command")
    cmd.ActiveConnection = conn
    cmd.CommandType = 4
    cmd.CommandText = "GetAllRecords"
    set rs=Server.CreateObject("ADODB.Recordset")
    set rs=cmd.Execute()
    set GetAllRecords= rs
    set rs=nothing
    set cmd=nothing
End Function

请指导,我被困在这里。

1 个答案:

答案 0 :(得分:5)

您不能像调用ASP.NET WebMethod一样调用传统的ASP页面。您可以通过在Querystring中传递参数来调用它,例如

url: "../dbFile.asp?Action=GetAllRecords",

在您的ASP代码中执行类似

的操作
If Request("Action") = "GetAllRecords"
   Response.Write GetAllRecords()
   Response.End
End If

注意:为此,GetAllRecords()函数需要返回带有JSON或XML的实际字符串,现在它重新创建一个Recordset。您需要通过记录集循环,以正确的格式构建字符串。