这并不完全是重复的;下面提供的答案与提议的重复答案中的评论相同。
从 asp.net 控制器操作内部,我有兴趣了解该调用是否是由 javascript fetch() 调用进行的。我可以询问 Request 对象的任何部分来发现这一点吗?
例如,如果我有兴趣知道调用者是否是 javascript $.ajax 调用,在服务器端我可以调用此方法:
Request.IsAjaxRequest();
如果它返回 true 我知道调用是这样的:
$.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);
});
From 这个答案 https://stackoverflow.com/a/4523844/1715579, IsAjaxRequest
检查由设置的特定 HTTP 标头$.ajax
。使IsAjaxRequest
返回 true 为fetch
当您发出请求时设置此标头,如下所示:
fetch('/MyDomain/MyControllerAction', { headers: { 'X-Requested-With': 'XMLHttpRequest' } })
See MDN https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch完整列表fetch
选项。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)