为什么Jquery Ajax调用返回html而不是Json

问题描述 投票:0回答:1

我编写了调用 MVC 服务器端方法的 Jquery Ajax 函数,但我的问题是它返回 html 而不是 Json 字符串,并且当它尝试解析返回的 html 时会抛出错误。

相同的代码在其他应用程序服务上运行良好(返回 Json 字符串)。 此应用程序服务可能存在什么问题? 我需要更改应用服务上的设置吗?

这是我的源代码:

MVC

[HttpPost]
[NoDirectAccess]
[ValidateAntiForgeryToken]
[Route("Login")]
public IActionResult Login(string email, string password)
{
  //run business logic
  //return results
  return Json(new { isValid = false, message = "", exception = "", html = "" });
}

Javascript

$.ajax({
                    url: '@Url.Action("Login","MyController")',
                    type: 'POST',
                    data: postData,
                    contentType: 'application/x-www-form-urlencoded',
                    dataType: "html",
                    success: function (res) {
                         console.log(JSON.parse(res)); //it throws an error here
                    }
});

错误

VM466:6  Uncaught SyntaxError: Unexpected token '<', "
<!DOCTYPE "... is not valid JSON
jquery model-view-controller
1个回答
0
投票

我通过将数据类型更改为 'text' 并在服务器端返回 http 状态代码来解决此问题:

返回 Ok(Json(new { isValid = false, message = "", 异常 = "", html = "" }));

© www.soinside.com 2019 - 2024. All rights reserved.