gpt4 book ai didi

asp.net - .NET 发送带有响应正文的 HTTP 400

转载 作者:行者123 更新时间:2023-12-02 17:30:41 25 4
gpt4 key购买 nike

我正在处理基于 AJAX 的表单提交,该表单也将作为 API 提供给其他应用程序。因此,我正在验证进入保存例程的请求,以确保字段包含相关数据(数字字段中的数字、日期字段中的日期等)

我认为,如果用户在请求中提交了无意义的数据,那么返回 HTTP 4xx 响应代码应该是最佳做法,但如果我将 HTTP 状态代码设置为 400,则我不会收到任何响应正文文本。

我继承了 HTTPException 来跟踪我想传递给客户端的错误的具体细节,API 交互将全部通过 JSON 进行。

我的代码(大致)是:

try
//my request validation code
catch e as myRequestLoadException
response.write("{")
response.write("""errormessage"": """ & e.message.replace("""","\""") & """")
response.write("""errortext"": """ & e.tostring.replace("""","\""") & """")
response.write("}")
Response.StatusCode = e.myStatusCode
end try

我使用 Postman 或 Chrome 开发者工具得到的响应是:

错误请求

如果我删除设置响应状态代码的行并重复测试,那么我会得到我期望的响应。

那么是 IIS、.net 框架还是 Chrome 拒绝了响应主体?

最佳答案

是 IIS,默认情况下不允许响应报告错误的自定义内容。为此,请在您的 web.config 中进行更改:

<system.webServer>
<httpErrors existingResponse="PassThrough" />
</system.webServer>

取自this article

关于asp.net - .NET 发送带有响应正文的 HTTP 400,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33778584/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com