阿贾克斯总是返回错误
问题描述:
你好,那些查看这个!阿贾克斯总是返回错误
我遇到了一些麻烦的Ajax调用。 在我的MVC3项目中,我有一个数据库,当用户在他的好友列表中添加另一个用户时,它会注册一行。
下面是HTML /剃刀代码:
@if(!Model.areFriends){
<div id="AddFriendAncor" class="AddButton"><a href="#" id="@Model.theUser.userID" class="Add">Add to friendlist</a></div>
}
else
{
<div class ="AddFriendAncor"><a href="#" id="DoneAdding">You are friends</a></div>
}
下面是使用Javascript/jQuery的/ Ajax代码。
$(".Add").on("click", function (event) {
event.preventDefault();
var acceptThisFriend = { "ID": event.target.id };
$.ajax({
type: "POST",
url: "/Profile/AddFriend",
contentType: "application/json; charset=utf-8",
dataType: "json",
data: JSON.stringify(acceptThisFriend),
success: function() { alert("Works");},
error: function()
{
document.getElementById(acceptThisFriend.ID).innerHTML = "Friend Added";
}
});
});
您可能会注意到,错误函数实际上持有成功函数应具有的内容。 原因是它的工作方式。这太可怕了,但我必须得到一些工作。
此外,它将两个实例添加到数据库。这是因为它动态地创建了Html,当我创建它时如何解除此绑定的任何想法?
编辑:AddFriend功能:
的AddFriend功能被拍成这个代替:
public virtual ActionResult AddFriend(string ID)
{
System.Diagnostics.Debug.WriteLine(ID);
var friendID = Convert.ToInt32(ID);
var user = u_rep.GetUser(User.Identity.Name);
f_rep.AddFriend(user.userID, friendID);
return Json(true);
}
我改变了AddFriend看起来像什么上面呢,现在阿贾克斯得到的东西,返回成功,但我还是两次添加到数据库dispite改变我的Ajax这样的:
$(".Add").on("click", function (event) {
event.preventDefault();
var acceptThisFriend = { "ID": event.target.id };
$.ajax({
type: "POST",
url: "/Profile/AddFriend",
contentType: "application/json; charset=utf-8",
dataType: "json",
data: JSON.stringify(acceptThisFriend),
success: function() { $("#AddFriendAncor").replaceWith("<p>Vini bætt við</p>"); },
error: function()
{
alert("fail");
}
});
});
答
改变了成功的功能是这样的:
success: function() { $("#AddFriendAncor").replaceWith("<p>Friend added</p>").unbind('click'); },
现在它只发射一次。 修改后的AddFriend函数确保Ajax得到了一些响应。
'JSON.stringify(acceptThisFriend)'返回什么'/ Profile/AddFriend'返回什么? – karthikr 2013-05-12 20:44:12
你有什么'/ Profile/AddFriend'方法?你可以将它添加到你的文章? – 2013-05-12 20:45:48
对不起,迟交的答案。 @karthikr stringify返回要添加的朋友的ID。 AddFriend不返回任何内容,它是无效的。这可能是问题吗? – Mappan 2013-05-12 21:23:49