Jquery Ajax Post总是出错

时间:2014-02-24 09:36:16

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

您好我有一个简单的小页面,提交一些值并从Web Api读取httpresponsemessage。这是我的HTML代码:

<!DOCTYPE html>

<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title>Data Client</title>
<script  src="http://code.jquery.com/jquery-1.10.1.min.js"> </script>
<script>
    $(document).ready(function () {
        $("#post").click(function () {
           // alert(document.forms["form1"]["user"]);
            $.ajax({
                type: "Post",
                url: 'http://localhost:1505/api/user/Login',
                data: $("#form1").serialize(),
               // datatype: "null",

            }).always(function (data, textStatus, jqXHR) { alert(jqXHR.serialize())});
        });
    });
</script>


</head>
<body>

<form id="form1">
    <p>
       User: <input type="text" name="user" />
    </p>
    <p>
    Password: <input type="password" name="password" />
    </p>
    <p>
        <input type="button" id="post" value="Login"  />
    </p>

</form>
</body>
</html>

这是我的Web Api中相应的Action Method。

  public HttpResponseMessage Login(User user)
    {
        if (ModelState.IsValid)
        {
            var found = (from p in db.Users
                         where (p.user == user.user && p.password == user.password)
                         select p).FirstOrDefault();
            if (found == null)
            {
                return Request.CreateResponse(HttpStatusCode.NotFound);
            }
            HttpResponseMessage response2 = Request.CreateResponse(HttpStatusCode.Found);
            Token token = new Token();
            string resptok = token.Generate(user);
            response2.Headers.Add("Authorization_Token", resptok);
            return response2;
        }
        else
        {
            return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
        }


        }

我无法弄清楚为什么它总是警告“错误”。我在api中使用JSON序列化。感谢您提前关注

1 个答案:

答案 0 :(得分:1)

您正在序列化jqXHR对象,您应序列化data以获取响应数据。