javascript - jquery ajax不起作用(服务器端是ASP.net)

标签 javascript jquery asp.net ajax

我的代码有问题。 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/

相关文章:

javascript - 影响所有图像的脚本,而不是仅影响包含特定文本的 div 中的图像 (jQuery)

javascript - 动态更改导航颜色 JS/CSS

javascript - 光滑的轮播滚动

javascript - node.js cron 是否影响系统性能

javascript - 取消选中 react 中的单选按钮

jquery - 获取表中非隐藏行的数量

jquery - jquery中按钮点击事件的问题

c# - 在中继器内的单个单元格中插入表格

asp.net - 当 ASP.NET 验证失败时更改文本框的 css 类

javascript - JavaScript 中变量的局部和全局作用域