【问题标题】:Unable to access a webmethod from Javascript无法从 Javascript 访问网络方法
【发布时间】:2011-10-19 09:46:43
【问题描述】:

我正在创建一个简单的网络方法来从 Java 脚本访问..但我不能

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script>
    <script type="text/javascript">


        $(document).ready(
        function test() {
            var x = PageMethods.MyMethod();
            alert(x.toString());
        })
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true" EnablePartialRendering="true">
        </asp:ScriptManager>
    </div>
    </form>
</body>
</html>

后面的代码是这样的

 [WebMethod]
        public static string MyMethod()
        {
            return "Hello";
        }

变量 x 为空。我无法弄清楚我错过了什么?有什么帮助吗?提前致谢

【问题讨论】:

  • 你在哪里调用函数test
  • @Chris .. 它会在文档准备好时自动调用

标签: c# javascript .net asp.net ajax


【解决方案1】:

您需要定义一个回调函数,该函数在收到来自网络方法的响应时调用:

    $(document).ready(
    function test() {
        PageMethods.MyMethod(myMethodCallBackSuccess, myMethodCallBackFailed);
    })

    function myMethodCallBackSuccess(response) {
        alert(response);
    }

    function myMethodCallBackFailed(error) {
        alert(error.get_message());
    }

您也可以将参数传递给方法,但这些参数必须始终位于成功和失败回调之前。

注意:您不需要包含失败的回调,但如果需要,它是可用的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-01-29
    • 1970-01-01
    • 1970-01-01
    • 2021-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多