我无法使用jquery将JSON数据从HTML发送到PHP,并且始终在console.log上显示失败状态。请检查我的代码。
jsonObjects.domain = client_domain;
jsonObjects.pkg = client_package;
jsonObjects.company_name = client_company;
jsonObjects.company_email = client_email;
jsonObjects.personal_name = psn_name;
jsonObjects.personal_phone = psn_phone;
jsonObjects.personal_email = psn_email;
var JsonPush = new Array();
JsonPush.push(jsonObjects);
var JsonArray = JSON.stringify(JsonPush);
$.ajax({
type: "POST",
url: 'order.php',
data: JsonArray,
dataType: 'json',
})
.done(function (data) {
console.log('done');
console.log(data);
}).
fail(function (data) {
console.log('fail');
console.log(data);
});
Order.php
文件
<?php
$decoded = json_decode($_POST['data']);
var_dump($decoded);
?>
答案 0 :(得分:0)
您不需要先进行字符串化,只需将其发布到带键对象中并通过像这样的键进行访问
let postData = { object: jsonObjects };
$.ajax({
type: "POST",
url: 'order.php',
data: postData,
dataType: 'json',
})
然后使用php:
$jsonObjects = $_POST['object'];
注意:您不是通过对象本身的名称访问发布的变量,而是访问发布的对象内部的键
答案 1 :(得分:0)
您的AJAX调用中没有data
参数。应该是:
data: { data: JsonArray },
但实际上根本不需要使用JSON。您可以给对象一个data:
选项,它的属性将成为POST
的参数。
data: jsonObjects,
然后在PHP中,您可以访问$_POST['domain']
,$_POST['pkg']
等。