服务器如何检测使用 fetch API 发出的请求?
How does a server detect a request made with the fetch API?
我有一个 ASP.NET MVC 5 应用程序,它处理来自我的网站的请求 API。
当我的控制器发生异常时,我使用我的自定义 "OnException" 方法(从 System.Web.Mvc.Controller 覆盖)在 JSON 中发送结果,其中包含有关错误的数据。我这样做是因为我不想发送默认的 HTML 错误页面。
在这个对所有控制器都是全局的方法中,我需要检查是否已使用 fetch API 执行了请求(如果没有,我什么都不做)。
我该怎么做?
- 我应该在请求中添加自定义 http header 吗?
- 我应该在所有请求中添加特定参数吗?
- 我的方法完全错误吗?
特定 header 或特定参数都可以; "clean" 方法可能是将 fetch-sent 请求中的 "Accept:" header 设置为 "application/json",表明该请求正在寻找 JSON 响应,并在 server-side 上使用它来确定是发送 JSON 还是 HTML。
我认为接受 Header 对所有情况都没有帮助。如果你请求 HTML 并且你有一个布局系统并想为异步请求禁用它,你将需要一种不同的方法。
我认为使用自定义标志 header 是一种更有保障的方法。
我有一个 ASP.NET MVC 5 应用程序,它处理来自我的网站的请求 API。 当我的控制器发生异常时,我使用我的自定义 "OnException" 方法(从 System.Web.Mvc.Controller 覆盖)在 JSON 中发送结果,其中包含有关错误的数据。我这样做是因为我不想发送默认的 HTML 错误页面。 在这个对所有控制器都是全局的方法中,我需要检查是否已使用 fetch API 执行了请求(如果没有,我什么都不做)。
我该怎么做?
- 我应该在请求中添加自定义 http header 吗?
- 我应该在所有请求中添加特定参数吗?
- 我的方法完全错误吗?
特定 header 或特定参数都可以; "clean" 方法可能是将 fetch-sent 请求中的 "Accept:" header 设置为 "application/json",表明该请求正在寻找 JSON 响应,并在 server-side 上使用它来确定是发送 JSON 还是 HTML。
我认为接受 Header 对所有情况都没有帮助。如果你请求 HTML 并且你有一个布局系统并想为异步请求禁用它,你将需要一种不同的方法。
我认为使用自定义标志 header 是一种更有保障的方法。