我是 AJAX 和 JavaScript 的新手,所以请耐心等待。我想使用 AJAX 调用将新用户对象发送到 WCF C# 方法,然后该方法在 SQL 服务器数据库中创建用户,然后让 C# 将验证对象发送回 AJAX 调用,(包含一个用户已成功创建或尚未创建的消息)。
这是我的 AJAX 代码:
$("#createUserCallButton").click(function () {
var reply = $.ajax({
url: "http://localhost/userservice/user.svc/createuser",
dataType: "json",
contentType: "application/json; charset=utf-8",
type: "POST",
data: JSON.stringify({
"username": "ThisIsMyUsername",
"password": "ThisIsMyPassword"
}),
success: function (data) {
console.log('success');
console.log(reply.responseText);
},
error: function (error) {
console.log('failure');
console.log(error);
},
});
});
这是我的 C# 代码:
public class User
{
[DataMember]
public string username { get; set; }
[DataMember]
public string password { get; set; }
}
[OperationContract]
[WebInvoke(Method = "*", UriTemplate = "/createuser",
RequestFormat = WebMessageFormat.Json,
ResponseFormat = WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.Bare)]
Validation Create_User(User json);
public Validation Create_User(User user)
{
Validation validation = new Validation { PassesValidation = true, Reason = ("") };
dataAccessor.CreateOne_User(user);
return validation;
}
现在,当我注释掉这一行时...
dataAccessor.CreateOne_User(user);
它将验证对象返回到控制台窗口并报告成功。但是当出现这一行时(并且代码将关闭以创建用户),AJAX 调用将返回失败并显示以下错误:
Failed to load resource: the server responded with a status of 400 (Bad Request)
但是,即使它报告失败,用户也已在数据库中成功创建,所以我认为问题不在于它的数据库部分。
我认为这归结为我对 AJAX 理解的差距。我已经仔细研究了这个并观看了无数的教程视频,但我仍然在挣扎。如果有好心人能想出解决这个问题的办法,我将不胜感激。
谢谢!
当它在下面的行被注释时返回验证对象,我怀疑在执行下面的语句时应该有一个错误。也许你可以添加 try catch 块或日志来确定代码到底在哪里中断。
'dataAccessor.CreateOne_User(user);'。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句