【问题标题】:XMLHttpRequest - sending arrays by _POSTXMLHttpRequest - 通过 _POST 发送数组
【发布时间】:2017-10-17 01:02:37
【问题描述】:

使用旧的 $.ajax 方法,我会像这样发送数组和普通数据:

var dataARR = {
    byteValue: 1,
    data: []
};

注意data 是一个数组。

dataARR.data.push({Username: "wazo", Info: "wazoinfo"});
dataARR.data.push({Username: "bifo", Info: "bifoinfo"});

然后准备好并发送:

var dataJSON = JSON.stringify(dataARR);
$.ajax({
    type: "POST", // This for array
    url: "login.php",
    cache: false,
    data: { myJson: dataJSON },
    success: function (data) {
        // Do stuff here
    }
});

在 php 代码中,我将执行以下操作:

$dataTotal = json_decode($post['myJson'], true);
$Username0 = $dataTotal['data'][0]['Username'];
$Info0 = $dataTotal['data'][0]['Info']);
$Username1 = $dataTotal['data'][1]['Username'];
$Info1 = $dataTotal['data'][1]['Info']);

一切都很好。

不过,现在我改用 XMLHttpRequest:

var url = "login.php";
var method = "POST";
var xhr = new XMLHttpRequest();
if ("withCredentials" in xhr) {
    // XHR for Chrome/Firefox/Opera/Safari.
    xhr.open(method, url, true);
} else if (typeof XDomainRequest != "undefined") {
    // XDomainRequest for IE.
    xhr = new XDomainRequest();
    xhr.open(method, url);
} else {
    // CORS not supported.
    xhr = null;
}

if (!xhr) {
    return;
}
// Response handlers.
xhr.onload = function (data) {
    // Do stuff
};

重要的一点

var dataJSON = JSON.stringify(dataARR);
xhr.send({ myJson: dataJSON });

但现在$_POST['myJson']不存在了

当我执行echo print_r($_POST); 时,它返回Array()1

问题:我需要发送什么xhr.send(????); 来获取它,以便我可以再次读取 php 中的数组?

【问题讨论】:

    标签: arrays post xmlhttprequest


    【解决方案1】:

    您可以使用 XMLHttpRequest 以不同方式访问数据。

    在javascript中:

    var dataJSON = JSON.stringify(dataARR);
    xhr.send(dataJSON);
    

    在php中:

    $dataTotal = json_decode(file_get_contents( "php://input" ), true);
    $Username0 = $dataTotal['data'][0]['Username'];
    $Info0 = $dataTotal['data'][0]['Info']);
    $Username1 = $dataTotal['data'][1]['Username'];
    $Info1 = $dataTotal['data'][1]['Info']);
    

    【讨论】:

      猜你喜欢
      • 2016-10-11
      • 2014-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-23
      • 2020-02-21
      • 2018-10-04
      • 2020-01-25
      相关资源
      最近更新 更多