从服务器,如何识别 javascript fetch() 调用 (asp.net mvc)
From server, how recognize javascript fetch() call was made (asp.net mvc)
这不是完全重复;下面提供的答案与建议的重复答案中的评论相同。
从 asp.net 控制器操作内部,我想知道调用是否是由 javascript fetch() 调用发出的。 Request 对象中是否有任何部分可供我查询以发现这一点?
例如,如果我想知道调用方是否是 javascript $.ajax 调用,在服务器端我可以调用此方法:
Request.IsAjaxRequest();
如果它 returns 是真的,我知道电话是这样的:
$.ajax({
url: '/MyDomain/MyControllerAction',
type: 'GET',
success: function (data) {
doSomething(data);
},
error: function (XMLHttpRequest, ajaxOptions, ex) {
doSomethingElse(XMLHttpRequest, ajaxOptions, ex);
});
是否有类似 Request.IsAjaxRequest() 的东西,我可以调用或询问以发现调用者是否是 javascript fetch(),例如这样的调用:
fetch('/MyDomain/MyControllerAction')
.then(function (data) {
if(data.ok){
return data.json();
}
})
.then(function (data) {
doSomething(data)
})
.catch(function (error) {
doSomethingElseAgain(error);
});
从 this answer 开始,IsAjaxRequest
检查由 $.ajax
设置的特定 HTTP header。要使 IsAjaxRequest
return 为 fetch
为真,请在您提出请求时设置此 header,如下所示:
fetch('/MyDomain/MyControllerAction', { headers: { 'X-Requested-With': 'XMLHttpRequest' } })
有关 fetch
个选项的完整列表,请参阅 MDN。
这不是完全重复;下面提供的答案与建议的重复答案中的评论相同。
从 asp.net 控制器操作内部,我想知道调用是否是由 javascript fetch() 调用发出的。 Request 对象中是否有任何部分可供我查询以发现这一点?
例如,如果我想知道调用方是否是 javascript $.ajax 调用,在服务器端我可以调用此方法:
Request.IsAjaxRequest();
如果它 returns 是真的,我知道电话是这样的:
$.ajax({
url: '/MyDomain/MyControllerAction',
type: 'GET',
success: function (data) {
doSomething(data);
},
error: function (XMLHttpRequest, ajaxOptions, ex) {
doSomethingElse(XMLHttpRequest, ajaxOptions, ex);
});
是否有类似 Request.IsAjaxRequest() 的东西,我可以调用或询问以发现调用者是否是 javascript fetch(),例如这样的调用:
fetch('/MyDomain/MyControllerAction')
.then(function (data) {
if(data.ok){
return data.json();
}
})
.then(function (data) {
doSomething(data)
})
.catch(function (error) {
doSomethingElseAgain(error);
});
从 this answer 开始,IsAjaxRequest
检查由 $.ajax
设置的特定 HTTP header。要使 IsAjaxRequest
return 为 fetch
为真,请在您提出请求时设置此 header,如下所示:
fetch('/MyDomain/MyControllerAction', { headers: { 'X-Requested-With': 'XMLHttpRequest' } })
有关 fetch
个选项的完整列表,请参阅 MDN。