如何解决php接收不到ajax数据的问题

这期内容当中小编将会给大家带来有关如何解决php接收不到ajax数据的问题,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

公司主营业务:成都做网站、网站建设、外贸营销网站建设、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联推出石门免费做网站回馈大家。

php接收不到ajax数据的解决办法:1、添加声明代码为“Content-Type=application/x-www-form-urlencoded”;2、按双方约定的格式序列化成字符串。

PHP接收不到ajax提交的json值的解决办法

JS需要指定contentType = application/x-www-form-urlencoded,发送的json数据才会被PHP的$_POST接收到。

jQuery中的contentType默认值: “application/x-www-form-urlencoded”(发送信息至服务器时内容编码类型)。默认值适合大多数情况,如果你明确地传递了一个 content-type 给 $.ajax() 那么它必定会发送给服务器(即使没有数据要发送)。

1、如果使用 post 方式发送,那么必须有 Content-Type = application/x-www-form-urlencoded 的声明,否则 php 不会将出传入的数据解析到 $_POST 数组。

声明了一个 contentType = application/json , Ajax自动补上一个 Content-Type = application/x-www-form-urlencoded 的声明。这两个相佐的声明也会使 php 无所适从。

2、发送的数据是 {data:jsonData},这是一个 js 对象。即使能够发送成功,php 也会因为不认识这个对象,而无法解析。凡是与外界进行交换的数据结构,都需要按双方约定的格式序列化成字符串

假定你的 Js.Ajax 可以将 js 的对象转换成 JSON 格式串

并且你也去掉了 contentType = application/json 的声明

那么你在 $_POST 中可以看到以那个 JSON串为键的元素

如果你坚持不愿意去掉 contentType = application/json 的声明

或许你个用 file_get_contents(‘php://input’) 取到传入的内容

php://input 允许读取 POST 的原始数据。和 $HTTP_RAW_POST_DATA 比起来,它给内存带来的压力较小,并且不需要任何特殊的 php.ini 设置。php://input 不能用于 enctype=”multipart/form-data”。

上述就是小编为大家分享的如何解决php接收不到ajax数据的问题了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注创新互联行业资讯频道。


文章名称:如何解决php接收不到ajax数据的问题
本文地址:http://azwzsj.com/article/ipjejo.html