IT虾米网

javascript之PageMethods 未定义错误

mengfanrong 2024年10月25日 程序员 36 0

我有以下方法背后的代码,我想使用 JScript 调用它

VB代码

   <WebMethod> 
    Public Shared Function SayHello() As String 
        Return ("Hello JScript") 
    End Function 

ASPX

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
    <script  type="text/javascript"> 
        function GetMessage() { 
            var i = PageMethods.SayHello(); 
            document.write(i); 
        } 
        setInterval(GetMessage, 500); 
    </script> 
</head> 
<body> 
</body> 
</html> 

只有我得到:未捕获的ReferenceError:PageMethods未定义

我正在尝试解决这个问题,但没有办法,需要帮助。

请您参考如下方法:

您在标记中错过了 Microsoft Ajax 扩展。

<asp:ScriptManager ID="ScriptManager1"  
EnablePageMethods="true"  
EnablePartialRendering="true" runat="server" /> 
 
<html xmlns="http://www.w3.org/1999/xhtml"> 
   <head runat="server"> 
     <title></title> 
       <script  type="text/javascript"> 
          function GetMessage() { 
             PageMethods.SayHello(callBack); 
           } 
 
           function callBack(result, userContext, methodName){ 
                 alert(result); 
           } 
           setInterval(GetMessage, 500); 
        </script> 
      </head> 
     <body> 
     </body> 
</html> 

尽管这是一个有效的方法,但我更喜欢使用 jQuery 调用页面方法(不需要 MS ajax 扩展):

您需要 jQuery 库:

<script   src="http://code.jquery.com/jquery-3.1.1.min.js"   integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8="   crossorigin="anonymous"></script> 
 
 
function GetMessage() { 
 $.ajax({ 
    type: "POST", 
    url: "PageMethods.aspx/SayHello", 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    success: function(response) { 
        alert(response.d); 
    }, 
    failure: function(response) { 
        alert("Error"); 
    } 
 }); 
} 


评论关闭
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!