jquery - 在 ASP.NET 中,当 HttpStateCode 为 200 时,ajax GET 响应为空
问题描述
我试图在 ASP.NET 项目中使用 ajax GET 请求获取 Logged User 信息。在浏览器中,响应代码为 200,但我得到“空”响应。这是我尝试过的一些代码。
function display(json) {
console.log(json);
}
var config = {
"async": true,
"crossDomain": true,
"url": ApiBaseUrl + "GetUserDetail",
"method": "GET",
"headers": headers,
"contenttype": "application/json; charset=utf-8",
success: display,
};
$.ajax(config).done(function (response) {
if (response) {
console.log(response);
}
console.log("No Data");
});
后端控制器代码是:
[Route("GetUserDetail")]
[HttpGet()]
public IHttpActionResult Get()
{
try
{
var identity = (ClaimsPrincipal)Thread.CurrentPrincipal;
string email = identity.Claims.Where(c => c.Type == ClaimTypes.Email)
.Select(c => c.Value).SingleOrDefault();
IBOAccount _accountBO = IOContainer.Get<IBOAccount>();
var _registeredUser = "response";
return Ok(_registeredUser);
}
catch (Exception)
{
throw;
}
}
怎么了?cookie中似乎没有保存令牌信息。
解决方案
如果您使用的是 ASP.NET MVC 5.2(除 ASP.NET Core 1.X、2.X 以外的任何版本),则需要明确允许您的 get 请求通过JsonRequestBehavior属性返回 JSON。因此,您的退货声明可能类似于:
return Json(_registeredUser, JsonRequestBehavior.AllowGet);
如果您使用的是 ASP.NET Core,那么我可能会猜测您的控制器中发生了一些异常。
推荐阅读
- c# - 属性使用构造中的 C# 表达式返回 null
- android - Flutter API 变更问题
- reactjs - 我如何在反应原生的卡片中动画显示项目
- gitlab - 仅在提交时安排 Gitlab-ci 作业
- schema - 嗨,架构中的链接中的“\/\/”和“//”之间有什么区别吗?
- node.js - MERN 堆栈:从服务器下载 .zip 文件
- python - 创建一个简单的循环
- c# - 可使用 IHostedService 取消任务并从服务外部启动/停止
- javascript - 将 JSON 更改转换为事件的最佳方法
- javascript - 无法将 Javascript 源代码转换为 Python