【发布时间】:2015-11-18 11:13:37
【问题描述】:
我正在处理基于 AJAX 的表单提交,该表单也将作为 API 提供给其他应用程序。因此,我正在验证进入 Save 例程的请求,以确保字段包含相关数据(数字字段中的数字、日期字段中的日期等)
我认为如果用户在请求中提交无意义的数据,则返回 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 都没有响应正文?
【问题讨论】:
标签: asp.net .net vb.net web-services