【问题标题】:Unable to call server side function using jquery无法使用 jquery 调用服务器端函数
【发布时间】:2014-04-20 21:01:53
【问题描述】:

我在 jquery 中有以下代码

            $('#btnSubmit').click(function () {
            $.ajax({
                type: "POST",
                url: "Appointment.aspx/saveAppointment",
                data: "{firstname:'" + firstname + "'}",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (msg) {
                    alert(1);
                    // Do something interesting here.
                }
            });
        });

我在 vb.net 中调用这个函数

<WebMethod()> _
Public Shared Function saveAppointment(ByVal firstname As String) As Boolean

    Dim checkval = globalclass.firstname
    Try

    Catch ex As Exception
        Throw ex
    End Try
    Return True
End Function

结束类

它似乎可以在没有任何参数的情况下工作。如果提供了参数,则不会调用。我也提到了这个,但似乎确实有效

Calling an ASP.NET server side method via jQuery

谢谢!

【问题讨论】:

    标签: jquery asp.net vb.net web-services


    【解决方案1】:

    https://api.jquery.com/jQuery.ajax/

    将数据作为对象发布:

    数据类型:PlainObject 或 String 要发送到服务器的数据。这是 转换为查询字符串,如果还不是字符串。它附加到 GET 请求的 url。请参阅 processData 选项以防止这种情况 自动处理。对象必须是键/值对。如果值是 数组,jQuery基于相同的键序列化多个值 传统设置的值(如下所述)。

    data: {firstname: firstname} 
    

    data: {firstname: firstname}  // in case you want to assign "firstname" as string value        to the data you are posting.
    

    考虑到右侧的firstname 是您的javascript 中定义的变量,而左侧的firstname 是您将在另一端脚本(PHP、vb.net ...等)中使用的名称

    【讨论】:

    • 我试过了,但即使这样也没有用。我工作时最常使用上述方法。使用它在单独的文件中分配它的实体。以下代码似乎正在工作 - data: '{firstname:'+ '"' + firstname + '"' + '}',
    • @user2165764 我对 vb.net 没有经验,但似乎问题出在您的 vb 脚本上,即使它有效,ajax 数据语法也是无效的。除非您发布整个字符串,例如 if firstname = "xxx" ,否则您必须发布:"{firstname:'xxx'}"
    • 我觉得 Vb 没问题。即使对于没有参数的函数,我也必须将值作为 Data: "{}" ;否则该函数没有被调用。我现在有点困惑,因为这不是我记得 jquery 的方式。理想情况下,您的代码应该可以工作。还在找。如果我找到原因会在这里更新。
    • 如果您将数据作为 "{}" 传递,则意味着您传递的是字符串而不是对象。
    猜你喜欢
    • 2014-10-21
    • 1970-01-01
    • 2011-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-14
    • 2015-10-14
    相关资源
    最近更新 更多