Axios HTTP DELETE请求返回415错误

用户名

我将在教程课程之后,以ASP.NET Core为后端构建一个React.js应用程序。我正在使用Axios来处理HTTP请求,我测试了get,post,put请求的运行情况,但是在del请求期间不断出错。这是产生相同错误的简化函数:

  const handleDeleteActivityTest = () => {
    Axios.delete('https://localhost:5001/api/activities/e2beb0eb-eaaa-49ee-92d8-daf472210456');
  }

并且该请求在控制台中打印以下错误消息:

删除https:// localhost:5001 / api / activities / e2beb0eb-eaaa-49ee-92d8-daf472210456 415(不支持的媒体类型)

createError.js:16未捕获(承诺)错误:XMLHttpRequest.handleLoad(xhr.js:61)处定居点(settle.js:17)处createError(createError.js:16)处状态代码为415的请求失败

但是我在Postman中进行了测试,删除请求的效果很好,并返回200 OK响应,我可以在数据库中看到该条目已删除:

邮递员DELETE回应

如果有人可以教育我这里发生的事情,我将不胜感激。谢谢您,保持安全快乐。

编辑----------------------------------

这是处理HTTP请求的后端代码。它分为两部分:1.)接收HTTP请求的控制器和2.)处理该请求的MediatR类:

1.)

namespace API.Controllers
{
    [Route("api/[controller]")]
    [ApiController]
    public class ActivitiesController : ControllerBase
    {
        private readonly IMediator _mediator;

        public ActivitiesController(IMediator mediator)
        {
            _mediator = mediator;
        }

        [HttpDelete("{id}")]
        public async Task<ActionResult<Unit>> Delete(Guid id, Delete.Command command)
        {
            command.Id = id;
            return await _mediator.Send(command);
        }
    }
}

2.)

namespace Application.Activities
{
    public class Delete
    {
        public class Command : IRequest
        {
            public Guid Id { get; set; }
        }

        public class Handler : IRequestHandler<Command>
        {
            private readonly DataContext _context;

            public Handler(DataContext context)
            {
                _context = context;
            }

            public async Task<Unit> Handle(Command request, CancellationToken cancellationToken)
            {
                var activity = await _context.Activities.FindAsync(request.Id);

                if (activity == null)
                    throw new Exception("Could not find activity");

                _context.Remove(activity);



                var success = await _context.SaveChangesAsync() > 0;

                if (success) return Unit.Value;

                throw new Exception("Problem saving changes");
            }
        }
    }
}

我发现控制器中的HttpDelete方法将id接收为Guid,但在React应用程序中id键入为字符串,因此我在控制器和MediatR类中将类型更改为字符串,但是出现了相同的http错误415。

houba016

Axios不会在删除呼叫中发送内容类型看起来ASP.net核心想要一个content-type

作为解决方法,您可以仅将主体添加到delete调用中,然后Axios将添加内容类型,这应该可以解决问题。

const handleDeleteActivityTest = () => {
    Axios.delete('https://localhost:5001/api/activities/e2beb0eb-eaaa-49ee-92d8-daf472210456', {
      data: {foo: 'bar'}
    });
  }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

节点-使用axios执行http请求时收到ECONNRESET错误

来自分类Dev

axios相当于http请求吗?

来自分类Dev

Node.js axios http请求循环

来自分类Dev

axios http始终返回空数据

来自分类Dev

wso2身份服务器oauth2请求返回HTTP错误415

来自分类Dev

Axios请求返回错误500(Laravel,Axios和Vuejs)

来自分类Dev

无法使用Axios从Http POST请求获取标头

来自分类Dev

为Axios HTTP获取请求建立连接ETIMEDOUT

来自分类Dev

在使用axios的React中尝试将多个参数传递给获取请求时出现415错误

来自分类Dev

HTTP GET Jwt请求与邮递员一起使用,但与axios返回相同401未经授权

来自分类Dev

从axios获取请求返回数据

来自分类Dev

axios.post返回400 React Native的错误请求

来自分类Dev

即使发布请求返回200,Axios网络错误

来自分类Dev

axios请求错误:与Heroku ECONNREFUSED

来自分类Dev

axios请求错误:与Heroku ECONNREFUSED

来自分类Dev

axios请求错误:与Heroku ECONNREFUSED

来自分类Dev

axios请求错误:与Heroku ECONNREFUSED

来自分类Dev

Vue.js Axios:HTTP GET请求后无法更新页面

来自分类Dev

为什么服务器从axios发出的POST http请求中获取空的request.body?

来自分类Dev

Axios.all 返回错误

来自分类Dev

Axios发布请求引发错误请求

来自分类Dev

如何利用春季启动修复程序REST Web服务POST请求时“HTTP-415”的错误,

来自分类Dev

错误的 http 请求错误

来自分类Dev

Axios POST请求返回未定义

来自分类Dev

Axios发布Spotify API请求返回400

来自分类Dev

Axios请求返回Promise而不是数据本身

来自分类Dev

Axios:如何拦截和响应axios请求

来自分类Dev

在Axios HTTP调用后打开Bootstrap模态

来自分类Dev

Axios将http更改为https

Related 相关文章

热门标签

归档