【问题标题】:Console Log Returning HTML Page Text Instead of JSON控制台日志返回 HTML 页面文本而不是 JSON
【发布时间】:2015-06-18 12:50:28
【问题描述】:

我正在尝试从如下发送的请求中返回 JSON 格式的模型:

$(document).ready(function() {
        (function(){
            console.log("ran");
            $.ajax({
                type: "GET",
                url: "https://clas.uconn.edu/Employees/Edit/22",
                success: function(data) {
                    console.log("Success: " + data);
                    empData = data;
                }
           });
       })();
    });

我的这个方法的控制器是:

// GET: Employees/Edit/5
    public ActionResult Edit(int? id)
    {
        var id = employee.id;
        if (id == null)
        {
            return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
        }

        if (employee == null)
        {
            return HttpNotFound();
        }

        return new JsonResult() { Data = employee, JsonRequestBehavior = JsonRequestBehavior.AllowGet };
        Console.WriteLine("error");
    }

但是,即使这些控制器操作都没有返回视图,我也会在 consol 日志中获得整个 html 页面。有什么想法吗?

编辑: 添加数据类型后,我在控制台日志中收到错误消息:

GET http://localhost:59909/Employees/EmployeeLookupDisplay   
net::ERR_CONNECTION_REFUSED

【问题讨论】:

  • 你的动作控制器的哪一部分被击中了?据我所知,HttpNotFound() 将返回整个 HTML 页面。
  • 你的控制器动作成功了吗?
  • 从 MVC 控制器接收到的那个 html 页面上有什么,通常会出现错误,黄屏死机,所以使用 chrome 开发工具或其他工具来呈现该页面(点击预览)

标签: c# jquery asp.net ajax


【解决方案1】:

它正在返回整个页面,因为您的请求在某处有错误。

在您的 ajax 调用和 console.log 上添加块错误 xhr. 您将获得有关此类错误的更多信息。

您可以尝试在 POST 上发出请求并检查 C# 代码中上下文的属性。有时添加 dataType 和编码有助于请求。

另外在浏览器开发者工具上检查您的请求的返回状态。在 chrome 中,它是显示所有请求及其状态的网络选项卡。

【讨论】:

    【解决方案2】:

    试试这个,但根据您的代码,它总是返回 HTTP 而不是 HTML 页面。如果您有数据给员工。我的意思是您的控制器操作成功且没有任何错误。那你可以试试tis。

         $.ajax({
                type: "GET",
                url: "https://clas.uconn.edu/Employees/Edit/22",
                dataType: "json",
                success: function(data) {
                    console.log("Success: " + data);
                    empData = data;
                }
    

    【讨论】:

      【解决方案3】:

      也许不是返回new JsonResult() { Data = employee, JsonRequestBehavior = JsonRequestBehavior.AllowGet };,而是返回return Json(employee, JsonRequestBehavior.AllowGet);'

      我看到的另一件事:

      在你正在做的第一行var id = employee.id; -> employee 来自哪里?也许错误就在那里。

      【讨论】:

        猜你喜欢
        • 2020-09-24
        • 2018-08-27
        • 2018-12-07
        • 2016-11-07
        • 1970-01-01
        • 2012-09-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多