如何判断页面是否是从fetch()调用的
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) { ... }
相关文章:
- IE11中的第二个调用取消了第一个Fetch API调用
- Backbone fetch中的Ajax在fetch调用退出后完成,因此fetch调用中没有成功/失败事件
- 如何在fetch post调用后管理重定向请求
- 如何判断页面是否是从fetch()调用的
- fetch()不调用其Success和Error回调函数(backbone.js)
- 主干集合在调用 fetch() 时给出“未定义的 Ajax”错误
- 在不调用 fetch 的情况下使用解析
- Backbone JS Model Fetch在Fiddler中返回200,但调用错误方法
- 只需要在主干javascript fetch()调用完成后运行代码
- 为什么'fetch函数'自动调用'解析函数'在backbone.js集合上
- backbone.js collection-重复调用fetch以获取所有“;页面”;来自服务器
- 什么是缓存fetch调用的正确方法
- 每次get时主干调用fetch
- 在fetch api调用时未设置标头
- Babel将新的Request (fetch-api)转换为函数调用,导致Chrome出现错误
- 主干JS:在fetch调用中分配一个模型属性
- 这个fetch调用问题
- 主干-在我的控制器中从一个fetch调用填充多个模型
- 处理redux中fetch调用时的错误
- Backbone.js Collection'的fetch调用出错