gpt4 book ai didi

c# - 在 ASP.NET 上检测 JSON 请求的最佳方法是什么

转载 作者:IT王子 更新时间:2023-10-29 04:38:24 24 4
gpt4 key购买 nike

大多数 ajax 框架似乎在 header 或查询字符串上使用“X-Request-With”进行标准化。

在 ASP.NET MVC 中你可以使用扩展方法

Request.IsAjaxRequest()

因为 ajax 客户端可以请求多种不同的内容类型,而不仅仅是“application/json”,例如:“application/xml”。

我正在使用以下代码片段/扩展方法,但我很想看看其他人在做什么,或者我是否遗漏了什么,或者有更好的方法。

public static bool IsJsonRequest(this HttpRequestBase request)
{
return request.Headers["Accept"].Split(',')
.Any(t => t.Equals("application/json", StringComparison.OrdinalIgnoreCase));
}

提前致谢。

最佳答案

您应该使用请求的 accept header为了这。这表明客户端希望服务器向其发送什么类型的内容。

不要使用请求的 content type header - 这表明是请求 消息正文的类型。如果您正在向服务器发布或放置一些 Json,请务必将其设置为“application/json”,但如果您正在发出 GET 请求,则内容类型应该为空(因为 GET 请求的主体为空),如果您要发布多部分表单或其他内容,那么它应该反射(reflect)该类型。

Web 表单的行为是将请求内容类型设置为“multipart/form-data”,将接受类型设置为“text/html”。在 Web 上,使服务器过载以使其返回与请求内容类型相同的类型同时忽略接受类型 header 将意味着发布的表单返回编码的表单数据而不是 html 页面。这显然不是正确的行为,因此不要围绕请求内容类型的这种解释来构建您的应用程序。

关于c# - 在 ASP.NET 上检测 JSON 请求的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6223063/

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