大佬教程收集整理的这篇文章主要介绍了将JSON数据从Javascript发送到PHP?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我在这里获得了很多信息,所以我想发布我发现的解决方案。
从浏览器上的JavaScript获取JsON数据到服务器,然后让php成功解析它。
windows上的浏览器(firefox)中的JavaScript。LAMP服务器作为远程服务器:Ubuntu上的php 5.3.2。
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字符串。
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数据。
如何将JSON数据从浏览器中的Javascript发送到服务器,并由php在其中进行解析?
以上是大佬教程为你收集整理的将JSON数据从Javascript发送到PHP?全部内容,希望文章能够帮你解决将JSON数据从Javascript发送到PHP?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。