【发布时间】:2018-05-01 08:58:05
【问题描述】:
我目前正在使用 MVC5 构建一个站点,并且在发出 ajax 请求时需要提供不同的内容。
通常我们使用 jQuery 并使用 $.ajax 发出 ajax 请求,但最近我们已经转向使用 fetch api。但是,使用 fetch api 的请求没有向 MVC 注册为 ajax 请求,因此使用了错误的模板。
我考虑过自己制作 ajax 请求扩展,但不确定要检查什么标头:
public static bool IsAjaxOrFetchRequest(this HttpRequestBase request)
{
if (request != null && request.Headers != null)
{
if (request.Headers["Custom-Fetch-Header"] != null)
{
return true;
}
}
return request.IsAjaxRequest();
}
是否有一个 fetch 与 Request.Headers["X-Requested-With"] == "XMLHttpRequest" ajax 发送的所有请求一起发送的标头?
单步执行代码,我看不到任何突出的地方
【问题讨论】:
-
浏览器总是添加
Origin请求头来获取跨域发送的请求和XHR请求。 -
@sideshowbarker 不幸的是他们来自同一个站点
标签: javascript c# asp.net-mvc-5 fetch-api request-headers