【发布时间】:2020-01-24 17:40:01
【问题描述】:
背景:我正在尝试调用 C# 函数以从 .aspx 网页上的 JavaScript 代码返回用户名和密码的身份验证结果。
目前我有以下 Javascript AJAX POST 请求。
$.ajax({
type: "POST",
url: "Management Login Page.aspx/Authenticate",
data: { username: username, username: password},
success: function(data)
{
alert('ok');
console.log(data);
if (data.result == true)
{
alert('correct');
window.location.replace("Management Page.aspx");
}
},
Error: function ()
{
alert('error');
}
});
这会从“Management Login Page.aspx”中的“Management_Login_Page”类中调用以下方法“Authenticate”
[WebMethod]
public static bool Authenticate(string username, string password)
{
System.Diagnostics.Debug.WriteLine(username, password);
if ((username == "test") && (password == "test"))
{
return true;
}
return false;
}
它返回整个 html 页面(如下所示),而不仅仅是一个布尔值。
ect.....
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<style>
body {
padding: 0;
margin: 0;
}
html, body, #Login1 {
height: 100%;
font: 10pt "Helvetica Neue", Arial, Helvetica, sans-serif;
align-content: center;
}
.lorem {
font-style: italic;
color: #AAA;
}
.center {
display: block;
margin-left: auto;
margin-right: auto;
}
</style>
</head>
<body class="login login-action-login wp-core-ui locale-en-us">
<div id="login">
如果我在 AJAX 请求中添加以下内容,我会在网页上收到错误 500。
dataType: 'json',
contentType: "application/json; charset=utf-8",
如何修改代码以仅返回布尔值?
编辑 - 更新为布尔方法作为测试剩余的字符串
【问题讨论】:
-
嗨,您的 WebMethod
Authenticate正在返回string,应该返回bool? -
Authenticate方法还能编译吗? -
嗨@rcoro,你是对的,它不会编译(错误地将我的头撞在墙上一段时间尝试不同的解决方案)。我已将其更新为返回一个 bool 并继续返回完整的 HTML 页面,但 AJAX 成功并加载页面(因为它不会将数据与 bool 进行比较,而是返回 html)
-
现在可以了吗?我不知道是否还有问题。
标签: javascript c# asp.net asp.net-ajax