控制台日志返回 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
它返回整个页面,因为您的请求中的某处存在错误。
将阻止错误添加到 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
来自哪里? 也许错误在那里。