控制台日志返回 HTML 页面文本而不是 JSON

本文关键字:JSON 文本 日志 返回 HTML 控制台 | 更新日期: 2023-09-27 17:56:51

我正在尝试从发送的请求中返回 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

控制台日志返回 HTML 页面文本而不是 JSON

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

将阻止错误添加到 ajax 调用并在xhr.console.log 您将获得有关此类错误的更多信息。

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

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

试试这个,但根据您的代码,它总是返回 HTTP 而不是 foud,这是 HTML 页面。 如果您有数据要员工。 我的意思是您的控制器操作在没有任何错误的情况下取得成功。 然后你可以试试TIS。

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

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

我看到的另一件事:

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