Ajax 调用未访问服务器端

Ajax Calls not Accessing Server Side

我很困惑为什么我的 Ajax 电话打不通。目前,我只需要来自客户端的 Ajax 方法来访问我的控制器方法。 我的 HTML 上的警报命令是 POPING 但是服务器端无法从客户端访问。请告知我在以下内容中缺少什么:

  1. 调用我的控制器的操作方法获取数据

    <script>
    $(document).ready(function () {
          $.get("@Url.Action("GetData","Driver")",function(data){
          $("#dataForSecond").html(data);
          alert("Second ActionResult");
      });
    });
    

  2. 在我的控制器中获取数据方法 returns:

     public ActionResult GetData()
    {
        logger.AddLog("INTO 2nd Action Method");
        var secondData = "I m Dummy";
        //System.Threading.Thread.Sleep(500);
        logger.AddLog("Setting loggedInAgent Value Again");
       // ViewBag.loggedInAgents = "11";
        return Json(secondData, JsonRequestBehavior.AllowGet);
    }
    
  3. 为了测试,我在客户端进行了跟踪,但没有刷新,只是像以前一样弹出。我的代码怎么回事,我不知道。

    $(function () {
        var refreshInterval = 5000;
        var url="@Url.Action("GetData","Driver")";
        setInterval(function () {
        $("#View1").load(url);
        }, refreshInterval);
    

您正在调用 ActionResult,您需要调用 JsonResult,这就是不起作用的原因,请参见下面的示例:

             $.ajax({
                url: '/Product/List',
                type: "GET",
                data: { "nrRecs": 4 },
                async: true,
                dataType: "json",
                error: function (XMLHttpRequest, textStatus, errorThrown) {
                       alert('error');
                },
                success: function (data) {
                    alert('ok');
                }
            });


    [HttpGet]
    public async Task<JsonResult> List(int nrRecs)
    {
        var product = db.products.Take(4);
        return Json(await product.ToListAsync());
    }