当前位置: 首页 > 面试题库 >

将JSON数据从Javascript发送到PHP?

从智明
2023-03-14
问题内容

如何将JSON数据从浏览器中的Javascript发送到服务器,并由PHP在其中进行解析?


问题答案:

我在这里获得了很多信息,所以我想发布我发现的解决方案。

问题: 从浏览器上的Javascript获取JSON数据到服务器,然后让PHP成功解析它。

环境: Windows上的浏览器(Firefox)中的Javascript。LAMP服务器作为远程服务器:Ubuntu上的PHP 5.3.2。

有效的方法(版本1):
1)JSON只是文本。以某种格式的文本,但只是一个文本字符串。

2)在Javascript中,var str_json = JSON.stringify(myObject)给我JSON字符串。

3)我使用Javascript中的AJAX XMLHttpRequest对象将数据发送到服务器:

request= new XMLHttpRequest()
request.open("POST", "JSON_Handler.php", true)
request.setRequestHeader("Content-type", "application/json")
request.send(str_json)
[... code to display response ...]

4)在服务器上,PHP代码读取JSON字符串:

$str_json = file_get_contents('php://input');

这将读取原始POST数据。$str_json现在包含来自浏览器的确切JSON字符串

可行的方法(版本2):
1)如果我想使用"application/x-www-form- urlencoded"请求标头,则需要创建一个标准的POST字符串,"x=y&a=b[etc]"以便在PHP得到它时,可以将其放入$_POST关联数组中。因此,在浏览器中的Javascript中:

var str_json = "json_string=" + (JSON.stringify(myObject))

当我像上述版本1中一样通过AJAX / XMLHttpRequest发送str_json时,PHP现在将能够填充$ _POST数组。

显示的内容$_POST['json_string']将显示JSON字符串。将$
_POST数组元素上的json_decode()与json字符串一起使用将正确解码该数据并将其放入数组/对象中。

我遇到的陷阱:
最初,我尝试发送带有application / x-www-form-urlencoded标头的JSON字符串,然后尝试立即从PHP的$
_POST数组中读取它。$ _POST数组始终为空。那是因为它期望格式为yval =
xval&[rinse_and_repeat]的数据。它没有找到这样的数据,只有JSON字符串,并且只是将其丢弃了。我检查了请求标头,然后正确发送了POST数据。

同样,如果我使用application / json标头,则无法再次通过$ _POST数组访问发送的数据。如果要使用application /
json内容类型标头,则必须通过php:// input而不是$ _POST访问PHP中的原始POST数据。



 类似资料:
  • 问题内容: 我的jphp.php文件包含以下内容: 并且我的javascript文件包含以下内容: 我已经用php编码了数据数据..现在我想将这两个数据数组发送到javascript …我不知道要使用的正确命令。我对谷歌搜索感到困惑。 请帮忙 。 问题答案: 使用jQuery的简单特定示例: JavaScript页面: 在您的php中:

  • 问题内容: 我有这个小点击计数器。我想将每次单击都包含在mysql表中。有人可以帮忙吗? 万一有人想看看我做了什么: 这是phpfile.php,出于测试目的,将数据写入txt文件 问题答案: 您的问题中定义的JavaScript不能直接与MySql一起使用。这是因为它不在同一台计算机上运行。 JavaScript在客户端(在浏览器中)运行,并且数据库通常在服务器端存在。您可能需要使用中间服务器端

  • 我正在尝试在我的网站上实现一个拖放文件上传器。文件被删除后立即上传,我想生成一个URL与flask将弹出在预览。我正在使用Dropzone.js。在dropzone的文档中,提供了一个示例,作为将数据从服务器发回并在文件上载后显示的指南。https://github.com/enyo/dropzone/wiki/faq#i-want-to-display-additution-informatio

  • 问题内容: 我正在尝试将JSON对象从Javascript / Jquery发送到PHP,并且在控制台中收到错误消息msg。我究竟做错了什么。我是JS和PHP的新手。 jQuery文件: PHP文件 问题答案: 菲尔(Phil)的出色回答,但自从OP标题说 从javascript( 不是jQuery )发送json对象到php 这是使用(原始)javascript的方法,以防万一有人寻找此方法:

  • 问题内容: 我有一个在我和它是一个连接到。当我单击时,我想说“ 单击按钮”。 这可能吗? 我知道两个连接到同一对象的对象可以轻松地相互通信并相互发送数据。但是对象可以将数据发送到对象中吗 编写自己的程序并将其附加到程序上是更好的编程吗?然后,我可以简单地让两个片段相互发送数据。 抱歉,如果这不是StackOverflow的正确类型。我是新手,因此无法在此问题上找到清晰的解释。 提前致谢! 问题答案

  • 问题内容: 我有MySQL数据库服务器 我需要通过JSON更新和检索MySQL服务器中的数据 所以,我想知道如何做到这一点,并且让这个示例语句感到困惑: 这意味着我需要先编写与PHP服务器连接的应用程序代码,然后再编写php以连接数据库。 问题答案: 要将数据发送到服务器,您可以执行以下操作: 然后发送让说: 因此服务器上的AddAccelerationData.php文件为: 这是我最近使用的示