【发布时间】:2015-06-22 14:07:27
【问题描述】:
在练习 Ajax 时,我编写了一个 Ajax 调用,它向本地 asp.net Handler.ashx 发送一个带有用户名和密码的 Json,如果它们等于 "jhon" "123456",则返回 true,否则返回 false。 我调试了代码,我看到 Handler.ashx 接收到调用,进行验证,并写入响应,但是 Ajax 调用不成功。
这是 Ajax 调用:
$.ajax({
url: '/Handler.ashx',
dataType: 'json',
data: {
name: document.getElementById("username").value,
password: document.getElementById("password").value
},
success: function (json) {
alert(json.isvalid);
},
error: function (jqXHR, textStatus, errorThrown) {
console.log(textStatus, errorThrown);
alert(textStatus + " " + errorThrown);
}
});
alert("failed");
这是服务器端:
<%@ WebHandler Language="C#" Class="Handler" %>
using System;
using System.Web;
public class Handler : IHttpHandler {
public void ProcessRequest(HttpContext context)
{
Console.WriteLine("check");
var name = context.Request["name"];
var password = context.Request["password"];
string response = IsValid(name, password) ? "true" : "false";
context.Response.ContentType = "appliaction/text";
context.Response.Write("{isvalid:'" + response + "'}");
}
private bool IsValid(string name, string password)
{
Console.WriteLine("isvalid");
return (name == "jhon" && password == "123456");
}
public bool IsReusable
{
get
{
return false;
}
}
}
谢谢!
【问题讨论】:
-
您的警报位于错误的位置。你想要
success: function (json) { alert(json.isvalid); }, error: function(jqXHR, textStatus, errorThrown) { console.log(textStatus, errorThrown); } -
我按照您的建议进行了更改(并编辑了问题),但问题仍然存在。行:警报(textStatus + errorThrown);给出按摩:parsererror Invalid JSON: {isvalid:'false'}
-
尝试使用双引号
{"isvalid":"false"}
标签: javascript c# jquery asp.net ajax