【问题标题】:How to post JSON from javascript to php [duplicate]如何将 JSON 从 javascript 发布到 php [重复]
【发布时间】:2017-06-16 16:55:54
【问题描述】:

我在 javascript 中将一个数组编码为 JSON:

var data = JSON.stringify(cVal);

这是我的 ajaxrequest 对象:

function ajaxRequest(url, method, data, asynch, responseHandler){
var request = new XMLHttpRequest();
request.open(method, url, asynch);
if (method == "POST")
    request.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); 
request.onreadystatechange = function(){
if (request.readyState == 4) {
    if (request.status == 200) {
        responseHandler(request.responseText);
        }
    }
};
request.send(data);
}

然后我使用这个 ajaxrequset 将 json 发送到 php:

ajaxRequest("setOrder.php","POST", data , true , dosetOrder);

在php端:

$array=$_POST['data'];

但系统说php中未定义索引中的数据

【问题讨论】:

标签: javascript php json


【解决方案1】:

创建一个对象并字符串化为 json

var data = {};
data["username"] = username;
data["password"] = password;
var jsonData = JSON.stringify(data);

将其发送到您的端点

function ajaxRequest(url, method, data, asynch, responseHandler){
  var request = new XMLHttpRequest();
  request.open(method, url, asynch);
  if (method == "POST")
    request.setRequestHeader("Content-Type","application/json"); 
  request.onreadystatechange = function(){
    if (request.readyState == 4) {
      if (request.status == 200) {
        responseHandler(request.responseText);
      }
    }
    request.send(data);
}

在端点解码

纯 PHP

$body = json_decode(file_get_contents("php://input"), true);
echo $body["username"];

Slim 框架 PHP

//example with Slim PHP framework
$body = json_decode($app->request->getBody(), true);
echo $body["username"];

【讨论】:

  • 哪个水晶球告诉你关于 OP 代码中的$app->...
  • 这是一个使用 Slim PHP 框架的示例,正​​如代码注释告诉你的那样,我只是试图展示如何从解析的对象中获取值。
  • 我添加了一个普通的 php 示例以使其更通用。
猜你喜欢
  • 2012-12-02
  • 1970-01-01
  • 2014-10-17
  • 1970-01-01
  • 1970-01-01
  • 2016-05-21
  • 1970-01-01
  • 2015-02-16
  • 1970-01-01
相关资源
最近更新 更多