原生php 如何接收和使用前端 发送的 json数据?

定义一个前端页面 send.html 发送的ajax请求,假设需要将数据发送到accept.php

  //send.html添加分类
  function addType(){
    let typeName =  document.getElementById('typeName').value
    typeName = typeName.trim()
    //定义数据对象,为发送数据准备
    let data = {
      "typeName":typeName,
      ...
    }
    //将JavaScript对象转换为json格式数据
    data = JSON.stringify(data)

    let addTypeXhr = new XMLHttpRequest();
      addTypeXhr.onreadystatechange=function(){
      if(addTypeXhr.readyState == 4 && addTypeXhr.status == 200){
        //对发送完数据后的操作
        console.log(data);
      }
    }
    addTypeXhr.open("POST","http://youselfUrl.php")
    //这里必须要设置Content-Type 值为 application/json; charset=utf-8
    addTypeXhr.setRequestHeader('Content-Type', 'application/json; charset=utf-8');
    //将定义的数据通过send()发送
    addTypeXhr.send(data);
  }

原生php写的后端如何接收呢?

正常情况使用$_GET / $_POST接收前端传回来的数据,但是用这两个方法都是无法接收的前端的json数据的,用这个 file_get_contents("php://input") 方法可以获取到json数据,将json数据转换为php对象,然后通过 -> 获取对象值

<?php
//accept.php 代码,接收前端发送的josn数据
// $data = $_POST; //当接收json格式的数据时 输出$data 为null

//需要使用这个方法,才能接收到前端发送的json数据,数据格式为单纯的字符串格式 'data...'
$data = file_get_contents("php://input"); 

//将前端发送的json数据,转换为php对象
$data =json_decode($data);
$typeName = $data->typeName;

echo $typeName
?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值