【问题标题】:AJAX TypeError: query is undefinedAJAX TypeError:查询未定义
【发布时间】:2017-03-13 09:21:57
【问题描述】:

我正在尝试使用 C# 向我的控制器发出 ajax 请求,但它从未到达控制器 - 我收到一个类型错误,提示“查询未定义”。

这是我的 ajax 脚本:

$(document).ready(function () {
    $.ajax({
        url: '/Account/GetAllGamesWithRoles',
        type: 'POST',
        data: {},
        success: function (games) {
            debugger;
            Games = games;

            BuildGames(games);
        },
        error: function() {
        }
    });
});

这是我的控制器操作:

[HttpPost]
public ActionResult GetAllGamesWithRoles()
{
    var result = MockGames();

    return new JsonResult{ Data = result, MaxJsonLength = Int32.MaxValue};
}

【问题讨论】:

  • 显示您的操作“GetAllGamesWithRoles”的代码。您是否将其定义为 [HTTPPOST] ?
  • 删除数据类型:“JSON”,然后尝试。在 Games = 游戏中给出断点;并检查。也试试这个网址:“/Account/GetAllGamesWithRoles”,
  • 用我使用的代码编辑。仍然没有运气:-(
  • 因为它是一个后调用,尝试将一个虚拟字符串作为参数传递给操作并尝试。它应该工作
  • 没有区别 :-(

标签: c# ajax asp.net-mvc http-post


【解决方案1】:

试试这个

 $(document).ready(function () {
    alert('called before ajax');
    $.ajax({
        url: "/Account/GetAllGamesWithRoles",           
        type: "POST",
        data: {'test':'testcall'},
        success: function (data) {               
            Games = data.Data;
            BuildGames(Games);
        },
        error: function (request, textStatus, errorThrown) {
          alert("Status: " + textStatus + "Error: " + errorThrown);
        }
    });
});


[HttpPost]
public JsonResult GetAllGamesWithRoles(string test)
{
    var result = MockGames();

    return Json{ Data = result, JsonRequestBehavior.AllowGet};
}

【讨论】:

  • 我发现了错误。我引用了一个 jQuery 自动完成脚本,它显然搞砸了 ajax 调用!感谢您的巨大努力! :-D
猜你喜欢
  • 2016-04-13
  • 2017-12-13
  • 2020-05-06
  • 1970-01-01
  • 1970-01-01
  • 2021-09-04
  • 1970-01-01
  • 2020-10-05
  • 2017-06-22
相关资源
最近更新 更多