javascript - Ajax 调用无法从 Web api 服务获取返回消息

标签 javascript jquery asp.net ajax asp.net-web-api

我正在对提供身份验证例程的 Web API 服务进行简单的 ajax 调用。 我的问题是 ajax 调用可以向服务发出请求,但一旦服务返回 bool 值就会出错。

我想要什么:

我想做的就是检查返回的 bool 值是 true 还是 false。如果为真,我想将用户重定向到另一个页面。 有人可以帮我解决这个问题吗?

JQUERY 代码:

<script type="text/javascript">
$(document).ready(function () {
    $('#submitButton').click(function () {   
        var name = $(userNameTextBox).val);          
        var pass = $(passwordTextBox).val();
        if (name.length == 0 || pass.length == 0) {
            alert("Please enter your credentials");
        }
        else {
             $.ajax({
                url: "http://localhost:50503/api/Authentication/Authenticate",
                data: { userName: name, passWord: pass },
                cache: false,
                type: 'GET',
                dataType: 'json',
                success: function (msg) {

                    alert(msg);
                },
                error: function (msg) {
                    alert("Error Message: "+msg);
                }                  
            });

        }//end of else
    });
});
</script>

这是我的 webapi 服务

public class AuthenticationController : ApiController
{
    [HttpGet]
    [Route("api/Authentication/Authenticate")]
    public bool Authenticate(string userName,string passWord)
    {
        if (userName.ToLower().Equals("username") && passWord.ToLower().Equals("password"))
        {
            return true;
        }
        else
        {
            return false;
        }            
    }
}

最佳答案

您可以尝试用此替换您的ajax调用,删除dataType:

var request = $.ajax({
    url: "http://localhost:50503/api/Authentication/Authenticate",
    cache: false,
    type: 'POST',
    data: { userName: userName, passWord: passWord }
});
request.done(function (msg) {
   //check the boolean and redirect user to another page.
   if(msg) window.location.href = "http://nextpage.com";
});

我还将方法更改为POST。更适合您的情况。

关于javascript - Ajax 调用无法从 Web api 服务获取返回消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22115919/

相关文章:

c# - 无法从静态方法访问 asp 控件,但是当我删除静态方法时,ajax 调用将不起作用

javascript - 动态 json 数组使同一个数组具有相同的键

javascript - react.js firebase 返回一个处于错误状态的响应对象

javascript - 在标签式Facebook页面中共享/喜欢对象

jquery - 默认情况下显示 bootstrap pill 处于事件状态

c# - .Show() 后模态弹出窗口扩展程序自动关闭

javascript - Three.js:将对象附加到相机但不使其随之旋转

javascript - 如何在视频js中在时间间隔后显示弹出窗口

javascript - 延迟-代码与失败/完成一起使用,但不与 then 一起使用

asp.net - 如何在 ASP.NET 中获取原始请求正文?