首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >状态文本为"ok“的多个异常状态代码

状态文本为"ok“的多个异常状态代码
EN

Stack Overflow用户
提问于 2021-03-01 22:12:06
回答 1查看 93关注 0票数 0

我正在开发一个小项目中的异常处理程序,无论是什么异常或异常代码,HTTP响应总是返回一个状态文本"ok“

Console log

.net核心5控制器类:

代码语言:javascript
复制
using API.Data;
using API.Entities;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;

namespace API.Controllers
{
    public class BuggyController : BaseApiController
    {
        private readonly ApplicationDbContext _context;
        public BuggyController(ApplicationDbContext context)
        {
            _context = context;
        }

        [Authorize]
        [HttpGet("auth")]
        public ActionResult<string> GetSecret()
        {
            return "secret test";
        }

        [HttpGet("not-found")]
        public ActionResult<AppUser> GetNotFound()
        {
            var thing = _context.Users.Find(-1);

            if (thing == null)
                return NotFound();

            else
                return thing;
        }

        [HttpGet("server-error")]
        public ActionResult<string> GetServerError()
        {
            var thing = _context.Users.Find(-1);

            var thingToReturn = thing.ToString();

            return thingToReturn;
        }

        [HttpGet("bad-request")]
        public ActionResult<string> GetBadRequest()
        {
            return BadRequest("This was not a good request");
        }
    }
}

测试异常的角度组件:

代码语言:javascript
复制
import { HttpClient } from '@angular/common/http';
import { Component, OnInit } from '@angular/core';

@Component({
  selector: 'app-test-errors',
  templateUrl: './test-errors.component.html',
  styleUrls: ['./test-errors.component.css']
})
export class TestErrorsComponent implements OnInit {
  baseUrl = "https://localhost:5001/api/";

  constructor(private http: HttpClient) { }

  ngOnInit(): void {
  }

  get404Error() {
    this.http.get(this.baseUrl + 'buggy/not-found').subscribe(response => {

      console.log(response)


    }, error => {
      console.log(error);
    })  

  }

  get400ValidationError() {
    this.http.post(this.baseUrl + 'buggy/register', {}).subscribe(response => {

      console.log(response)


    }, error => {
      console.log(error);
    })
  }


  get400Error() {
    this.http.get(this.baseUrl + 'buggy/bad-request').subscribe(response => {

      console.log(response)


    }, error => {
      console.log(error);
    })

  }

  get500Error() {
    this.http.get(this.baseUrl + 'buggy/server-error').subscribe(response => {

      console.log(response)


    }, error => {
      console.log(error);
    })

  }

  get401Error() {
    this.http.get(this.baseUrl + 'buggy/auth').subscribe(response => {

      console.log(response)


    }, error => {
      console.log(error);
    })

  }
}

我非常感谢一些关于为什么我得到的状态文本是ok的帮助。我一遍又一遍地检查了所有的东西,仍然是一样的。感谢你的帮助

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-06 00:29:10

我在Udemy的课程QA中找到了答案。它与http/2和angular客户端本身的默认值有关。简而言之,在http/2请求中,statusText从响应中删除,angular用缺省数据(即statusText=Ok )填充缺失的信息。这也是其他地方提到的问题

Course link main reference

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66423659

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档