![](/img/trans.png)
[英]How to tell if function being called originated from a click event in javascript
[英]How to tell if page is being called from a fetch()?
使用jQuery,Ajax函数设置头部HTTP_X_REQUESTED_WITH
,因此使用PHP我可以:
if(filter_input(INPUT_SERVER, 'HTTP_X_REQUESTED_WITH') === 'XMLHttpRequest')
{ ... }
这将告诉我使用Ajax请求页面。
现在我想将Ajax
函数更改为fetch()
。 我查看了它设置的默认标头,我找不到任何可以用来判断请求是否从fetch发送的内容。
我可以自己设置标题:
fetch('/get/login', {
headers: {
'X-Requested-With': 'fetch',
},
})
.then(function(response) { ... }
然而,为每次提取写出那个标题并不理想。 我有什么选择? 有没有更好的方法来判断是否通过提取请求?
不,没有别的东西可以依靠。
从理论上讲,根据请求方法,您不应该为服务器提供不同的行为; 应该与系统后端定义的内容正交。
但是,如果你很绝望,我非常喜欢你现有的解决方案; 你可以将它包装在一个函数中以简洁起见。
由于您依靠客户端传递数据,您是否无法在体内传递POST变量? 通过javascript传递标题并不比简单地传递其他字段更安全。 ( https://davidwalsh.name/fetch )
fetch('/get/login', {
body: JSON.stringify({
source: : "fetch"
}),
})
.then(function(response) { ... }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.