为什么我无法在 PHP 文件中使用 AJAX 发布 JSON 数据?

2024-02-08

我有一个 AJAX 脚本,可以在我的 PHP 文件之一中发布数据:

     var _lname = $('#ptLastName').val();
    var _fname = $('#ptFirstName').val();
    var _mname = $('#ptMiddleName').val();
$.ajax({
                type: "POST",
                url: ".././CheckPerson.php",
                data: "{'lastName':'" + _lname + "','firstName':'" + _fname + "','middleName':'" + _mname + "'}",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (response) {
                    var res = response.d;
                    if (res == true) {
                        jAlert('Person Name already exists!', 'Error');
                        return;
                    }

它工作正常,我可以看到 Firebug 控制台中发布的 JSON 数据。问题出在这段 PHP 代码上:

$firstname = json_decode($_POST['firstName']);
$lastname = json_decode($_POST['lastName']);
$middlename = json_decode($_POST['middleName']);
$response = array();

上面的PHP代码似乎无法识别'firstName','lastName', and 'middleName'作为发布的 JSON 参数,并返回Undefined index: firstName in C:...对于所有发布的参数都是类似的。

我也尝试过使用$data = $_POST['data'] and $_REQUEST['data']获取所有 JSON 参数并使用以下命令对其进行解码json_decode($data);但没有用。

我还使用了 AJAX 缩短的代码来发布$.post('.././CheckPerson.php', {data: dataString}, function(res){ });,它与我的 PHP 文件配合得很好,我的 PHP 文件现在可以读取lastName, firstName, and middleName,但我认为它不是 JSON 数据,而只是文本数据,因为 firebug 无法将其读取为 JSON 数据。现在,我很困惑我的 PHP 文件如何读取 JSON 数据参数。你们对此有什么建议吗?


问题是dataType: "json"并不意味着您要发布 json,而是您希望根据请求从服务器接收 json 数据。您可以将帖子数据更改为:

data: {myPostData : "{'lastName':'" + _lname + "','firstName':'" + _fname + "','middleName':'" + _mname + "'}"}

然后在你的服务器上解析它,就像

$myPostData = json_decode($_POST['myPostData']);
$firstname = $myPostData["firstName"];
$lastname = $myPostData["lastName"];
$middlename = $myPostData["middleName"];
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么我无法在 PHP 文件中使用 AJAX 发布 JSON 数据? 的相关文章

  • 使用 PHP PayPal REST API 退款?

    我正在开发一个集成到 PayPal 的 REST API 中的 PHP 应用程序 我正确处理了事务并将事务 ID 保存到 MySQL 数据库中 我现在正在尝试退款 但无法让它停止给出 传入 JSON 请求未映射到 API 请求 错误 有人对
  • 键绑定 - 鼠标中键与 Sublime Text 2

    有谁知道是否可以将鼠标中键绑定到 Sublime Text 2 中的操作 我知道可以进行一些鼠标交互 因为您可以使用后退和前进按钮 基本上 我将使用此按钮通过 sFTP 插件上传文件 这样我需要按下的按钮数量就会从 3 个减少到 1 个 目
  • mouseover 函数在队列中多次出现

    我有这段代码 可以在鼠标悬停时使一个 div 淡出另一个 div 并在光标离开查看区域时淡出 例子 http jsfiddle net 3vgbemgu http jsfiddle net 3vgbemgu under hover func
  • 动态速度计 javascript 或 jquery 插件

    我希望有动态ajax插件在页面上显示速度计 一个想法是我设置一个背景并旋转针 有人知道相关插件吗 这里有一些供您参考 http bernii github com gauge js http bernii github com gauge
  • WordPress 包含 SVG 文件错误

    我使用 PHP 和 WordPress 在本地主机上 我可以毫无问题地包含 SVG 文件 但在实时服务器上 我尝试包含一个 SVG 文件以便能够使用 CSS 对其进行样式设置 我收到此错误消息 Parse error syntax erro
  • 如何在ASP.NET Webform中使用Jquery表单插件?

    我遇到了这个插件 http malsup com jquery form getting started http malsup com jquery form getting started 我想知道如何在 ASP NET WebForm
  • 如何纠正这个非法字符串偏移?

    我收到此错误 警告 第 32 行 home mysite public html wp content themes evento lib php extra class php 中的非法字符串偏移 type 我意识到文件中的这部分代码是错
  • 如何使用 JavaScript 中的值填充下拉列表?

    我在 Tridion CMS 扩展中的功能区工具栏按钮中添加了一个按钮 单击该按钮后 将显示一个弹出页面 其中包含两个下拉菜单 通过更改第一个下拉控件中的值 我应该填充第二个下拉控件的值 就我而言 我正在使用ASP drop down li
  • jquery 验证错误位置

    这看起来很简单 但我无法弄清楚 我正在使用 jquery 验证插件 我验证所有文件 但我想要的是在输入文本行中显示验证消息警报 例如在电子邮件输入中 请填写电子邮件地址 但现在它出现在所有字段下 在我的html中
  • Jquery从下拉列表中获取所选值的id

    我有一个下拉列表 可以从数据库获取值 如下所示 get getJobs function jobs seljobs jobs var i 0 jobs forEach function n alert job id n id 32 67 4
  • jq中如何分组?

    这是 json 文档 name bucket1 clusterName cluster1 name bucket2 clusterName cluster1 name bucket3 clusterName cluster2 name bu
  • 如何在 Zend MVC 中实现 SSL

    我之前已经通过使用特定的安全文件夹 例如服务器上的 https 文件夹与 http 文件夹 实现了安全页面 我已经开始使用 Zend Framework 并希望应用程序的某些部分 例如登录 使用 https 我在谷歌上搜索过 甚至在这里搜索
  • 如何让 jquery Tooltipster 插件适用于新创建的 DOM 元素?

    我正在使用 Tooltipster 插件http calebjacob com tooltipster http calebjacob com tooltipster 这很棒 但我已经动态生成了插入到 DOM 中的内容 工具提示程序似乎没有
  • PHP 中的引用

    我正在编写一个自定义博客引擎 并且希望拥有类似于 Wordpress 的引用 我可以查看 WordPress 源代码 但我真的更喜欢某种教程 但到目前为止我还没有找到 有没有关于在 PHP5 中实现 trackbacks 或 pingbac
  • Hive:如何分解嵌入 CSV 文件中的 JSON 列?

    从 CSV 文件 带有标题和管道分隔符 中 我得到了以下两个内容 其中包含一个 JSON 列 内部有一个集合 如下所示 第一种情况 使用没有名称的 JSON 集合 ProductId IngestTime ProductOrders 918
  • 从所有会话中注销

    我有一个注销选项 这是我的代码 session start session destroy setcookie key time 60 60 24 setcookie username time 60 60 24 我想添加另一个选项来注销所
  • 淡出和循环一组 div 的最佳方式

    假设我有以下 div div class a You are funny div div class b You are smart div div class c You are cool div 最好的展示方式是什么div a持续 5
  • 反向引用在 PHP 中不起作用

    最近我一直在研究 更多的是在实践中说实话 正则表达式 我注意到他的力量 我提出的这个要求 link https stackoverflow com questions 30380397 take the text up to a speci
  • JSON 到 hashmap (杰克逊)

    我想将 JSON 转换为 HashMapJackson http jackson codehaus org 这是我的 JSON String json Opleidingen name Bijz trajecten zorg en welz
  • 优雅降级 - 何时考虑

    在为使用 AJAX 的应用程序设计和构建 UI 时 您何时考虑优雅降级 对于禁用 JavaScript 或正在使用屏幕阅读器的用户 最后 网站的 AJAX 版本完全完成后 在每个发展阶段 I don t 还有别的事 这些日子 渐进增强 ht

随机推荐

  • 如何在 R 中永久更改 .libPaths() ?

    每当我使用以下命令更改库路径顺序时 libPaths 功能 如果我重新启动 R 它会恢复为默认值 如何永久更改此设置 我正在Linux计算集群上工作 我没有管理员权限 所以我想将我的本地库永久添加到R中 每次启动 R 时我都必须这样做 li
  • 如何捕获“远程服务器返回错误:(403) 禁止”的异常。

    我收到 远程服务器返回错误 403 禁止 错误并想捕获这个异常 我猜想 HttpException 块应该捕获它 如下所示 但事实并非如此 catch HttpException wex if wex GetHttpCode ToStrin
  • post-commit 挂钩在 svn commit 上产生错误,但在命令行上手动运行时有效

    我目前正在尝试为我的颠覆存储库设置提交后挂钩以发送电子邮件通知 我正在使用颠覆1 7 8 我的提交后挂钩脚本如下 bin sh REPOS 1 REV 2 REPOS hooks mailer py commit REPOS REV REP
  • 显示向量寄存器的约定

    是否有显示 写入大型寄存器的约定 例如英特尔 AVX 指令集中提供的寄存器 例如 如果最低有效字节为 1 最高有效字节为 20 其他位置为 0xmm寄存器 对于按字节显示是以下首选 小端 1 0 0 0 0 20 或者这是首选 20 0 0
  • 实体框架 4.1 - 如何“强制”EF 转到数据库而不是使用图形?

    这是场景 我有一个网站 在单个 HTTP 请求 HTTP POST 中 我需要执行以下操作 抓住一个物体 比方说 标签 保存其他一些对象 假设 问题 获取 标签 的新副本 重定向到另一个页面 该页面需要 标签 的新副本 在幕后 2 涉及影响
  • 支持 IAccesible 接口以在文本编辑器中移动插入符号的正确解决方案是什么?

    我想从头开始实现一个支持 IAccessible 接口的文本编辑器 我正在使用 MFC 和 Win32 API 当记事本等标准文本编辑器中的插入符号位置发生变化时 讲述人 JAWS 等客户端工具将发音与插入符号移动相对应的字母 单词或行 我
  • 在 Entity Framework Core 中编写实体 POCO 类的正确方法是什么?

    EF Core 默认具有 代码优先心态 即它应该以代码优先的方式使用 尽管支持数据库优先方法 但它被描述为只不过是对现有数据库进行逆向工程 创建它的代码优先表示 我的意思是 手动 代码 代码优先 创建的模型 POCO 类 和从数据库生成的模
  • 通过 ssh 转发 SIGTERM

    我希望 ssh 将 SIGTERM 信号转发到远程命令 ssh root localhost root print signal py 获取ssh的PID ps aux grep print signal 杀死匹配的 ssh 进程 kill
  • 如何在用户默认中保存对象列表?

    我的目标是 struct Order Codable var item id String var quantity Int 0 var image String var name String var desc String 函数的类别是
  • 如何在matlab中绘制地圈?

    如何在matlab中绘制地球圈 By Geosphere我的意思是球体上离散化点的方式 例如 3Ds Max 中的 Geosphere On the image below it is shown Sphere on the left an
  • 我如何检索通过java play中的post传递的数据

    这是我的代码 我需要检索 POST 中发送的数据 play db jpa Transactional public static Result registered String fullname String email String p
  • 重新编码鼠标 mids 对象

    我有一个mids对象创建自mice 我想重新编码一些估算变量并保留mids目的 我知道我可以转换mids反对 长 complete 但我想保留mids对象 因为它有一些额外的用途 这是一个使用的示例nhanes数据集 跑步mice 为变量创
  • 如何将 div 高度设置为所选打印纸张的 100%?

    如何将高度设置为所选打印纸张的 100 CSS width 100 height 100 margin auto margin top 0px important border 1px solid 当我在 Google Chrome 中打印
  • 所有本机修订的数据库在哪里?

    我已经阅读了所有 SO 问题 编码恐怖文章 并用 Google 搜索了我的大脑 寻找修订控制数据的最佳方法 它们都可以工作 并且都有基于用例等的适当实现 我真正想知道的是为什么没有编写一个数据库来原生支持数据级别的修改 让我感到困惑的是 A
  • ffmpeg concat 产生 DTS 乱序错误

    我正在关注有关如何操作的文档连接 https trac ffmpeg org wiki Concatenate文件与 ffmpeg 但在这个过程中我看到很多警告 输出视频在第一个块后停止 但音频继续播放 这是我用来连接文件的命令 ffmpe
  • 如何使用 javascript 捕获旧值并将其设置为取消

    我有一个文本字段 我从中调用一个函数onChange事件 当该文本字段中的值发生更改时 我会在此处抛出一个确认窗口 如果单击取消 在确认窗口中 则必须将旧值设置回文本字段 如果单击 继续 或 确定 则应保留新值 我已经尝试了很长时间 但无法
  • AVCaptureOutput didOutputSampleBuffer 停止被调用

    我对委托方法有疑问didOutputSampleBuffer CMSampleBufferRef sampleBuffer fromConnection AVCaptureConnection connection of AVCapture
  • 空数组似乎同时等于 true 和 false

    空数组为 true 但也等于 false var arr console log Array arr if arr console log It s true if arr false console log It s false if a
  • AWS dax 稳定性问题

    我正在尝试将 DAX 引入我们的架构 但到目前为止尚未成功 通过 lambda 发生与 dax 的连接 完成的设置类似于 AWS 文档中的示例 Lambda 和 Dax 位于同一个 vpc 中 它们大部分时间都可以看到对方 并且 dax 正
  • 为什么我无法在 PHP 文件中使用 AJAX 发布 JSON 数据?

    我有一个 AJAX 脚本 可以在我的 PHP 文件之一中发布数据 var lname ptLastName val var fname ptFirstName val var mname ptMiddleName val ajax type