Ajax调用无法访问服务器端

时间:2016-10-08 21:05:28

标签: jquery html ajax asp.net-mvc server-side

我很困惑为什么我的Ajax调用不起作用。目前,我只需要客户端的Ajax方法来访问我的Controller方法。 我的HTML上的警报命令是POPING 但是不能从客户端访问服务器端。请告知以下我遗失的内容:

  1. 调用Controller的操作方法获取数据

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

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

     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. 为了进行测试,我在客户端进行了跟踪,但没有发生REFRESHING,只有POP像以前一样。我的代码是怎么回事,我不知道。

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

1 个答案:

答案 0 :(得分:1)

你正在调用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());
    }