gpt4 book ai didi

javascript - 扩展 IsAjaxRequest() 以包含获取 api 请求

转载 作者:行者123 更新时间:2023-11-30 14:55:27 31 4
gpt4 key购买 nike

我目前正在使用 MVC5 构建一个网站,我需要在发出 ajax 请求时提供不同的内容。

通常我们使用 jQuery 并使用 $.ajax 发出 ajax 请求,但最近我们开始使用 fetch api。但是,使用 fetch api 的请求不会作为 ajax 请求向 MVC 注册,因此使用了错误的模板。

我考虑过制作自己的 ajax 请求扩展,但不确定要检查哪个 header :

    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();
}

是否有像 Request.Headers["X-Requested-With"] == "XMLHttpRequest" ajax 发送的所有请求都发送的 header ?

单步执行代码,我看不到任何突出的地方

最佳答案

好吧,进一步调查,我似乎找不到随请求发送的任何标准 header ,所以我创建了自己的 header :

const request = new Request(url, {
headers: new Headers({
'X-Is-Ajax-Request': 'True'
})
});

return fetch(request)
.then(html => {
const $result = $(html);
const $content = $result.filter('.js-sidebar-panel-content');
return $content.length ? $content : $result;
});

然后我就可以更新我的扩展了:

public static bool IsAjaxOrFetchRequest(this HttpRequestBase request)
{
if (request != null && request.Headers != null)
{
if (request.Headers["X-Is-Ajax-Request"] != null)
{
return bool.Parse(request.Headers["X-Is-Ajax-Request"]);
}
}

return request.IsAjaxRequest();
}

关于javascript - 扩展 IsAjaxRequest() 以包含获取 api 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47353074/

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