PHP 检测 Fetch Api 与 XMLHttpRequest

2023-12-19

截至目前,我的网站正在使用 jQuery Ajax 从前端向后端发出请求,然后后端通过检查 $_SERVER['HTTP_X_REQUESTED_WITH']=="XMLHttpRequest" 来确定 ajax 请求。我正在尝试仅切换到本机 JS,并且想要使用 Fetch Api。问题是我似乎无法检测 PHP 中的 fetch api 请求与常规页面加载请求。 $_SERVER['HTTP_X_REQUESTED_WITH'] 显然不再起作用了。所以我尝试设置新的标头({HTTP_X_REQUESTED_WITH})。然后还是不行。感谢任何帮助,谢谢

JS:

let dataForm = new FormData(),
    reqHeaders = new Headers({
      "X-Custom-Header": "ThisMeansAjaxRequest",
    });

  dataForm.append('postFavColor', 'green');

  let result = fetch('/ajax/', {
    method: 'POST',
    header: reqHeaders,
    body: dataForm
  })
  .then(res=>{
    if('json' in res){
      return res.json()
    }
    throw new Error('Not so JSON');
  })
  .then(res=>{
    if (res.status === 'success') {
      // WE MADE IT!!!
      console.log(req);
      return res.message
    }
    else{
      throw new Error('Server returned Error', res)
    }
  })
  .catch(err=>{
    console.error('fetch error of some sort', err);
  });

PHP:

    // Below if statment was being used for Ajax request test from jQuery
// replacing the if statement below with the custom header passed from fetch api
// still doesn't work. Tried all 4 versions below
// if (isset($_SERVER['X_Custom_Header']) && $_SERVER['X_Custom_Header']=="ThisMeansAjaxRequest")
// if (isset($_SERVER['Custom_Header']) && $_SERVER['Custom_Header']=="ThisMeansAjaxRequest")
// if (isset($_SERVER['HTTP_X_Custom_Header']) && $_SERVER['HTTP_X_Custom_Header']=="ThisMeansAjaxRequest")
// if (isset($_SERVER['HTTP_Custom_Header']) && $_SERVER['HTTP_Custom_Header']=="ThisMeansAjaxRequest")


//// Original jquery Ajax detector
if (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH']=="XMLHttpRequest") {
        //continue;
        //echo 'This is certified Ajax request <br>';
    $data = array(
            'status' => 'success',
            'message' => 'You\'re a Wizzard Harry!'
        );

        echo json_encode($data);
}
        else{
    //Not ajax request so display page
        header("location: www.example.com/index.php");
}

None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP 检测 Fetch Api 与 XMLHttpRequest 的相关文章

  • 在 Graal.js 中使用 java 类

    使用 Graal js 如何将 java 类导入到 JS 脚本中 以下代码适用于 Nashorn JJS 但不适用于 Graal js 因为没有Java type 在graal中 我需要在某个时候调用truffle吗 var ArrayLi
  • 更新 Bootstrap 缩略图网格 - ajax 请求

    设想 我有一个带有显示国家 地区的 Twitter Bootstrap 缩略图网格的视图 当用户单击一张图像时 它应该在同一网格 屏幕 中显示与该国家 地区相关的城市 技术的 首先 我用国家 地区填充 dataProvider 然后我应该将
  • Python 结构的 PHP 替代品

    我很高兴在我的 Python 项目中使用 Fabric 进行部署 现在我正在从事一个更大的 PHP 项目 想知道是否有类似 PHP 的 Fabric 之类的东西 唔 为什么这有关系 Fabric 只是 python 脚本 所以它与项目语言无
  • 不推荐使用 getPreventDefault()。请改用defaultPrevented。为什么我会收到此错误以及解决方案是什么?

    以前我在代码中使用 jQuery 1 7 1 我收到上述错误 然后我直接从谷歌存储库使用了 jQuery 1 11 1 但我仍然收到此错误 我应该如何解决这个问题 由于这个错误 我的其他 jQuery 功能也无法工作 我研究了很多关于该解决
  • IE7 真的不支持indexOf javascript 吗? [复制]

    这个问题在这里已经有答案了 可能的重复 数组上的 indexOf 函数在使用 JavaScript 的 IE7 8 中不起作用 https stackoverflow com questions 11544983 indexof funct
  • jQuery 解析 JSON

    当我尝试解析 JSON 验证的字符串时收到此错误 JSON parse 意外字符 当我删除需要转义的字符 style width 400px 时 它完美地工作 我缺少什么 在使用 parseJSON 之前是否有一种独特的方法来转义字符 va
  • 在 Photoshop 中使用 javascript 修改文本项的内容

    我知道如何使用这样的代码在 Photoshop 中设置文本项的内容 var al doc activeLayer if al kind LayerKind TEXT get the textItem var ti al textItem c
  • 点击事件的事件处理程序自动触发 - jQuery [重复]

    这个问题在这里已经有答案了 可能的重复 为什么单击事件处理程序会在页面加载后立即触发 https stackoverflow com questions 7102413 why does click event handler fire i
  • 在 PHP 中搜索多维数组中的值并获取其路径

    这是我的数组 array array 1 gt array title gt Level1 nodes gt array 11 gt array title gt sub1 company1 12 gt array title gt sub
  • 在单页应用程序上重用 Google Maps API 实例

    假设我有一个单页应用程序 Angular JS 应用程序 并且我在元素 id 上绘制一个 Google 地图实例googleMap var mapInstance new google maps Map document getElemen
  • 如何使用 HTML5 在画布上绘制心电图监视器?

    我尝试使用canvas html5绘制心电图系统 几乎我即将完成我的波浪正在移动 但不是连续地重复 但我想绘制波浪是从左到右连续移动的 下面的链接是示例 Ex https www youtube com watch v wuwBfSpVEg
  • PHP 中二进制的前缀是什么?

    两者都不是0x nor 0 它是什么 有没有 从 PHP 5 4 开始 二进制数的前缀是 0b For ealier version there is no such prefix Instead you can use 0x for he
  • 为什么使用 LAMP 托管时避免使用 CGI for Python?

    我已经使用 PHP 多年了 最近我在论坛上看到很多帖子说PHP 已经过时了 现代编程语言更简单 更安全等等 所以 我决定开始学习Python 由于我习惯使用 PHP 因此我刚刚开始通过上传 htaccess 文件来构建页面 addtype
  • 在 jQuery 中获取最接近元素的形式

    我编写了这个 js jquery 脚本来检查表单中的所有复选框 它工作得很好 但是这会检查页面上的所有复选框 无论它们是什么表单包装器 这是函数 function toggleCheck state var checkboxes jQuer
  • 危险的 PHP 函数

    我将用户输入的 php 函数存储到 mySQL 数据库中 这些函数需要能够被执行 正如我们所知 这可以并且将会允许黑客先生将一个漂亮的网站变成瑞士奶酪 这些函数很简单 不需要任何高级的 php 编码 它们更多地涉及处理单个数据数组 因此 如
  • Laravel http 请求:无法运行多个请求

    我在 Laravel http 请求方面遇到了严重的问题 请帮我解决这个问题 我假设我有 2 个请求路由到相同的控制器 Req 1 http localhost 8000 manualScheduler runScript task nam
  • 如何将所有后代节点和链接设置为与 2 级祖先相同的颜色?

    我有一个 d3 js 树 其后代节点接收其 2 级祖先的节点颜色 这在级别 2 到级别 3 之间有效 但在级别 4 及以上级别停止工作 相关代码 var colourScale d3 scale ordinal domain MD Prof
  • 网站可以检测您何时将 Selenium 与 chromedriver 结合使用吗?

    我一直在使用 Chromedriver 测试 Selenium 我注意到有些页面可以检测到您正在使用 Selenium 即使根本没有自动化 即使我只是通过 Selenium 使用 Chrome 手动浏览 Xephyr https en wi
  • 变量前面的@是什么意思? [复制]

    这个问题在这里已经有答案了 可能的重复 参考 这个符号在 PHP 中意味着什么 https stackoverflow com questions 3737139 reference what does this symbol mean i
  • localStorage 获取 NULL?

    我不知道为什么 因为我之前已经这样做过并且工作正常 我认为这可能是因为浏览器问题 错误 localStorage setItem foo bar alert localStorage getItem foo 我使用的是 Firefox 3

随机推荐

  • 插入 PostgreSQL

    我在 SQL 方面遇到了一点问题 我正在尝试将 2 个值插入到我的表中 这是我的查询 INSERT INTO tableinfo table date VALUES Sell 24 August 但这不起作用 我有类似的东西 SQL err
  • 通过“C#”清除临时 Internet 文件

    我在 Windows 应用程序中使用 webbrowser 控件 我正在查看 webbrowser 控件内的 url 内容 这里的 url 内容值存储在用户计算机的临时 Internet 文件中 当我单击表单中的关闭按钮时 我正在以编程方式
  • 除了 Windows 设备门户之外,还有其他方式访问 Hololens LocalAppData 吗?

    我一直遇到这个问题 当我尝试通过 Windows 设备门户将本地应用程序文件从 Hololens 保存到我的计算机时 门户需要很长时间才能下载它们并最终超时 这很令人沮丧 因为我在连接到门户时没有问题 而且我尝试下载的文件非常小 有谁知道我
  • 如何查看Python文件的汇编代码? [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 出于好奇 我想查看与 py 文件代码相对应的汇编指令 您可以提出任何值得信赖的解决方案吗 The dis module https
  • 如何更新已安装的 Windows 服务?

    我用 C 编写了一个 Windows 服务 我已经将它安装在我的机器上 并且运行得很好 当您安装服务时 exe被复制到某个地方 还是它指向我的bin文件夹 这是为了让我知道 当我不时更新我的 代码时 我是否必须卸载并重新安装我的服务才能更新
  • 为什么在searchBar和tableview之间添加空白?

    我有一个表格视图控制器 我添加了搜索栏 但是当我点击 searchBar 时 searchBar 和 TableView 之间有一个空格 为什么 以及如何修复 在下面我添加了屏幕截图和代码 tableViewController 列表 感谢
  • Java 中的 JAR 级(汇编级)类范围

    在 C 中 如果我希望某个类对该程序集 DLL 中的任何类都可见 我只需将其范围设置为internal 这是默认值 我怎样才能在Java中做到这一点 在Java中 我注意到默认 内部范围是封装级别 not JAR 级别 这对我来说是一个问题
  • Python 中的图像注视点

    我希望能够在 Python 中将焦点放在图像的中心 我的输入图像可以表示为 2D Numpy 数组 我想要获得中心高分辨率但两侧模糊的输出图像 我发现了一个名为的 OpenCV 函数logplar interp为此目的 但它似乎不存在于 O
  • IOS中如何处理用户认证持久化?

    我正在尝试为我的 iPhone 应用程序和服务器构建基础 我的用户将从 iPhone 应用程序注册并登录 在正常的网站登录中 http 服务器会提供 cookie 以允许用户后续的请求保持身份验证 我应该如何在 iPhone 上处理这个问题
  • 关闭 Excel.Workbook 时出现 COMException(0x80010108 - RPC_E_DISCONNECTED)

    当我运行以下代码时 出现以下异常 NOTE ExcelApp is a Private main form variable Dim ReportBooks As Excel Workbooks ExcelApp Workbooks Dim
  • 如何在异步模式下使用 XMLHttpRequest 设置多个标头数据?

    我的 api 调用要求我在标头中传递 api 密钥 但我从 api 服务返回错误 error 2424452 message Invalid Api Key 我知道我的 api 密钥是有效的 因为我可以在 Python 中进行相同的 api
  • 如何替换 Gradle 构建产品文件中的令牌?

    我为 Gradle 设置了一个普通的构建脚本 我想做的一件事是指定我的构建版本 这是我设置的用于替换主 Java 源文件中的版本标记的代码 import org apache tools ant filters ReplaceTokens
  • 什么是位掩码?

    我对 C 编程相当陌生 并且遇到了位掩码 位掩码的一般概念和作用是什么 非常感谢例子 掩码定义要保留哪些位以及要清除哪些位 屏蔽是将屏蔽应用于值的行为 这是通过执行以下操作来完成的 按位与运算以提取值中的位子集 按位或运算以设置值中的位子集
  • 当 HTML5 画布准备好时调用函数

    我将多个 PNG 图像加载到画布上 因此生成画布需要一些时间 我想在画布加载时显示加载图标 如何检查画布是否正在加载或准备就绪 HTML
  • OpenGL ES 可以渲染非基本二维的纹理吗?

    在我深入研究将当前的渲染系统转换为 openGL 之前 这只是一个简单的问题 我听说纹理需要采用基本 2 尺寸才能存储以进行渲染 这是真的 我的应用程序内存非常紧张 但大多数位图都不是 2 的幂 存储非基2纹理会消耗更多内存吗 确实 具体取
  • 流程发布资源

    我正在尝试构建我的react native项目并使用react native fbsdk 我在用 电子邮件受保护 cdn cgi l email protection and 电子邮件受保护 cdn cgi l email protecti
  • 如何升级密码存储方案(更改哈希算法)

    我被要求对 Intranet 站点实施一些更改 更新 正如他们所说 使其成为 面向未来 我们发现密码是使用 MD5 算法进行哈希处理的 该系统自 2001 年以来就已经存在 所以当时已经足够了 我们现在想要将哈希算法升级为更强的算法 BCr
  • (function(){})() 和 (function(){}()) 之间的区别,自调用匿名函数[重复]

    这个问题在这里已经有答案了 看看括号的位置 有什么不同吗 函数 function 和 func function 从技术上讲 第一个定义了一个匿名函数 然后调用它 第二个定义了一个匿名函数 该函数在定义时调用自身 实际上 它们是相同的
  • 执行命令时如何在atom中设置环境变量

    我正在尝试将我的环境变量设置为 env DEBUG babel 但我不知道在 Atom 编辑器中哪里可以使用这个设置 要使 shell 的环境变量可供 Atom 使用 请安装以下两个小 Atom 包 来自 shell 的环境 https a
  • PHP 检测 Fetch Api 与 XMLHttpRequest

    截至目前 我的网站正在使用 jQuery Ajax 从前端向后端发出请求 然后后端通过检查 SERVER HTTP X REQUESTED WITH XMLHttpRequest 来确定 ajax 请求 我正在尝试仅切换到本机 JS 并且想