You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在返回StatusCodeResult 202 Accepted响应时携带Location头?

如何返回202 Accepted并添加Location请求头

没问题,我来帮你解决这个问题!要在返回202 Accepted的同时带上Location请求头,分两种常见场景给你方案:

场景1:ASP.NET Core 项目(推荐方式)

在ASP.NET Core里,直接用框架提供的AcceptedResult就能一步到位,它会自动帮你设置202状态码和Location请求头:

// 示例:指向相对路径的资源URI
return Accepted("/api/orders/123");

// 如果需要绝对URI也可以这样写
return Accepted(new Uri("https://yourdomain.com/api/orders/123"));

这个方法完全符合HTTP规范,Location头会被自动添加到响应中,同时状态码设置为202 Accepted。

场景2:传统ASP.NET MVC 项目(兼容你的现有代码)

如果是用传统ASP.NET MVC(也就是你当前用StatusCodeResult的场景),可以先手动给Response添加Location头,再返回状态码:

// 先添加Location请求头,指定后续可查询状态的资源地址
Response.Headers.Add("Location", "/api/orders/123");

// 再返回202 Accepted状态码
return new StatusCodeResult(HttpStatusCode.Accepted);

另外提一句,你原代码里的第二个参数this其实是多余的,在Controller中直接返回new StatusCodeResult(HttpStatusCode.Accepted)就可以正常工作啦。

小提示

按照HTTP标准,202 Accepted对应的Location头应该指向一个可以查询异步操作状态的资源,这样客户端后续就能通过这个URI来获取请求的处理进度或者最终结果哦。

内容的提问来源于stack exchange,提问作者Ankit Koushik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 03:58:10