jquery - 使用 jQuery 调用 Web 服务以返回简单的 bool 值

标签 jquery asp.net ajax web-services asmx

我有一个 ASP.NET Web 窗体应用程序,并且在我的 .ASPX 页面之一上有一些 javascript。

在 Javascript 的一部分中,我想调用一个 Web 服务,以便我可以执行服务器端函数并返回 true 或 false 值,然后在 javascript 中我可以根据 true 执行两个操作之一或错误值。

我之前没有做过任何 Web 服务,所以我正在努力将一个简单的值返回给 JS。

我的 WebService (LoginCheck.asmx) 目前看起来像这样:

[System.Web.Script.Services.ScriptService]
public class LoginCheck : System.Web.Services.WebService
{
    [WebMethod]
    public bool IsLoggedIn()
    {
        return UserService.IsAuthenticated();
    }
}

我的 Javascript 调用当前看起来像这样:

$.ajax({
    type: "GET",
    contentType: "application/json; charset=utf-8",
    url: "LoginCheck.asmx/IsLoggedIn",
    data: "{}",
    dataType: "json",
    success: function (response) {
        if (response) {
            alert('Logged in: true');
        } else {
            alert('Logged in: false');
        }
    }
});

尽管我的代码中的“IsLoggedIn”Web 服务方法有一个断点,但它永远不会中断。当应该调用网络服务时,我检查了 Google Chrome 中的“控制台”,它显示了以下内容:

“支持以下操作...”,它显示了我的一个“IsLoggedIn”方法,但在此控制台窗口中呈现的所有内容本质上是一个带有 HTML 标记的 HTML 页面。

我似乎从来没有a)打破代码中的断点或b)得到对我的javascript的响应(因此上面代码中显示的js警报都没有发生)。

最佳答案

it's getting a 301 redirect back to the LoginCheck.asmx

我今天也遇到了同样的问题。

您可能在 IIS 的 URLRewrite 2 模块中使用 LowerCaseRule。 您的方法名称是 IsLoggedIn,因此 LowerCaseRule 尝试调用 isloggedin,但失败。

您的 LowerCaseRule 应忽略 asmx 文件,如下所示:

        <rule name="LowerCaseRule1" stopProcessing="true">
            <match url="[A-Z]" ignoreCase="false" />
            <conditions>
                <add input="{URL}" matchType="Pattern" pattern="^.+\.((axd)|(js)|(xaml)|(asmx))$" ignoreCase="true" negate="true"/>
            </conditions>
            <action type="Redirect" url="{ToLower:{URL}}" />
        </rule>

编辑:我总结了今天的一些经验,发布在这里:http://www.tomot.de/en-us/article/8/asp.net/how-to-use-jquery-to-call-a-webservice-asmx-method

关于jquery - 使用 jQuery 调用 Web 服务以返回简单的 bool 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9734654/

相关文章:

jQuery 在 f :ajax 之后应用 css 类

jquery - 如何在 Bootstrap 4 中为 nav-link 元素设置不同的对齐方式?

jQuery 股票代码 |允许 HTML 吗?

c# - 强制更改 RadioButtonGroup 中的样式?

javascript - 如何使用 Javascript 跟踪出站点击

javascript - javascript中的拆分函数

javascript - 仅提交表单中的特定字段

c# - 如何将查询字符串参数转换为asp.net mvc 4中的路由

asp.net - 编译器错误消息: CS0009 - mscorlib.dll

javascript - 通过 AJAX 将 Rails 变量传递给部分?