我的代码有问题。 jquery ajax 不起作用。我的jquery脚本是这样的:
$('#AddPermission').click(function () {
var _permissionId = $('#PermissionId').val();
var _roleId = $('#Role_Id').val();
if (_permissionId == '') {
return false;
}
var _parameters = { permissionId: _permissionId, id: _roleId };
console.log(_parameters);
$.ajax({
url: "/Admin/AddPermission2RoleReturnPartialView",
type: "GET",
data: _parameters,
success: function (data, textStatus, jqXHR) {
console.log(data);
$('#PermissionsTable').html(data);
$('#PermissionId').val("");
},
error: function (xhr, textStatus, errorThrown){
console.log(errorThrown);
}
});
});
我用 ASP 编写的服务器端脚本是这样的:
[HttpGet]
[OutputCache(NoStore = true, Duration = 0, VaryByParam = "*")]
[ValidateAntiForgeryToken]
public PartialViewResult AddPermission2RoleReturnPartialView(int id, int permissionId)
{
Response.Write("Code1");
ROLE role = database.ROLES.Find(id);
PERMISSION _permission = database.PERMISSIONS.Find(permissionId);
if (!role.PERMISSIONS.Contains(_permission))
{
role.PERMISSIONS.Add(_permission);
database.SaveChanges();
}
return PartialView("_ListPermissions", role);
}
当在控制台中运行时,我给出了这些数据:
Object { permissionId: "39", id: "3" }
Internal Server Error
有人可以帮我吗?
最佳答案
删除方法上的 ValidateAntiForgeryToken 属性,因为您不使用 Token 发布表单,只是进行 ajax 调用,并尝试使用 jquery 的 param 函数包装 ajax 调用的参数
$.ajax({
url: "@Url.Action("ActionName", "ControllerName")",
type: "GET",
data: $.param(_parameters),
success: function (data, textStatus, jqXHR) {
console.log(data);
},
error: function (xhr, textStatus, errorThrown) {
console.log(errorThrown)
}
});
关于javascript - jquery ajax不起作用(服务器端是ASP.net),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43423263/