1

我讨厌在这里发布这样的问题,但我已经没有办法真正理解它是如何工作的了。在普通的 .Net Web 服务中,没有为 JSON 或任何内容进行配置,有以下 Web 方法:

<WebMethod()> _
Public Function HelloWorld(ByVal str As Int32) As String
    Return "Hello, World!  str=" & str
End Function

我想做一个非常简单的网页,只使用 JS 调用这个 web 方法,从中获取值,然后在 alert() 语句中打印它。我正在继续自己研究这个主题,但我很难找到这个问题的直接答案。

这大约是我能做到的最接近的(除了这个实际上没有使用返回值):

<html>
<body>
<script type="text/JavaScript">
    <!--
        alert("spam");                                
        $.ajax({
            type: "POST",
            data: "&str=1",
            url: "<HTTP path and filename>.asmx/HelloWorld",
            timeout: 15000,
            cache:false,
            success: function (data) {
                alert("good");
            },
            error: function() {
                alert("bad");
            }
        });
        alert("spam");
    //-->
</script>
</body>
</html>

同样,我不喜欢在 StackOverflow 上发布这样的问题,但我一直无法找到一个明确、直接的答案,而且我对 JavaScript 很陌生。谢谢!

编辑:在 Ajax 调用周围抛出一个 try...catch 块,我收到以下消息:

$ is not defined
4

1 回答 1

2

$是一个变量。您的代码显示它正在使用 jQuery 库,$用作别名。

如果要使用此代码,则必须包含 jQuery 库。

为此,请在您的代码之前包含以下内容:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js" type="text/javascript"></script>

但是,如果您是 javascript 新手,我建议您先尝试不使用 jQuery。

对于一个很棒的教程,我只能向你展示我所知道的最好的资源:MDN

如果你绝对要使用 jQuery,你必须知道你的data参数是错误的。它确实接受一个字符串,但这个字符串格式不正确,应该是这样的:str=1。添加另一个变量是str=1&foo=2.

jQuery 允许你放置一个对象而不是一个字符串,这提供了一些语法糖,通常是推荐的方式(不太容易出错):

data: {
    str: 1,
    foo: 2
}
于 2012-10-29T20:09:29.900 回答