使用 javascript/jquery 调用带有参数的 Web 方法

Calling web method with parameter using javascript/jquery

提问人:Audrey Wilrose 提问时间:8/18/2020 最后编辑:wazzAudrey Wilrose 更新时间:8/20/2020 访问量:33

问:

日安。我想做的是调用一个在我的jquery中接受字符串参数的web方法。但我不能让它工作。我一直在搜索和测试代码,但当我传递参数时它不起作用。

使用此代码有效。但这只会调用没有参数的 Web 方法:

<WebMethod>
    Public Shared Function GetData() As String

        Return DateTime.Now.ToString()
    End Function

这是 javascript 代码:

<script type="text/javascript">
        
        function CheckDouble() {
            try {
                alert("clicked")
                $.ajax({  
                      type: "POST",  
                      url: "IssueTransSummary.aspx/GetData",  
                      data: '',  
                      contentType: "application/json; charset=utf-8",  
                      dataType: "json",  
                      success: function (response) {  
                          alert(response.d);  
                      },  
                  });  
            }
            catch(err) {
              alert(err.message);
            }
        }
    </script>

使用上面的代码可以完美地工作。但我需要的是将数据传递给 webmethod。所以我将我的网络方法更新为:

<WebMethod>
    Public Shared Function GetData(ByRef title As String) As String

        Return DateTime.Now.ToString()
    End Function

和 javascript 代码

<script type="text/javascript">
        
        function CheckDouble() {
            try {
                alert("clicked")
                $.ajax({  
                      type: "POST",  
                      url: "IssueTransSummary.aspx/GetData",  
                      data: JSON.stringify({ title: 'MP3'}),  
                      contentType: "application/json; charset=utf-8",  
                      dataType: "json",  
                      success: function (response) {  
                          alert(response.d);  
                      },  
                  });  
            }
            catch(err) {
              alert(err.message);
            }
        }
    </script>

我收到错误 500 内部服务器错误

我已经尝试了我在网上找到的解决方案,但它对我不起作用。

我什至添加了此代码,但仍然不起作用

<ScriptMethod(UseHttpGet:=True, ResponseFormat:=ResponseFormat.Json)>

请帮帮我。谢谢

JavaScript jQuery WebForms 参数传递

评论


答:

0赞 wazz 8/20/2020 #1

看起来它应该有效。您可以尝试发送更简单的数据进行测试吗?尝试。data: 'MP3',

可能是,但我对 VB 不够熟悉。 也许?ByRefByVal

评论

1赞 Audrey Wilrose 8/20/2020
o万维网。我没有注意到这个简单的错误。我把它改成 Byval 并且它奏效了。谢谢