0

我是网络服务的新手。我有以下代码,当我尝试在本地主机上运行它时,我没有得到所需的输出......它显示FirstName:undefined LastName:undefined..

以下是我的代码

$(document).ready(function(){
    var employees = [
  { "firstName":"John" , "lastName":"Doe" }
];
$.ajax({
    url: "MyService.php",
    type: "POST",
    data: employees,
    dataType: "json",
    success:function(data) {
        alert("Firstname:"+data.firstName+", LastName: "+data.lastName);
        },
    error:function(data) {
        alert('error');
    }  });
});

php代码是

echo json_encode($_POST);
4

1 回答 1

2

的值data应该是一个对象。您正在传递一个包含对象的数组。摆脱阵列。

这:

    var employees = [
  { "firstName":"John" , "lastName":"Doe" }
];

…正在向服务器提交以下内容:

undefined=

它应该是:

var employees = { 
    "firstName": "John",
    "lastName":"Doe"
};

这将提交:

firstName=John&lastName=Doe

此外,您似乎没有指定Content-Type标头,因此 PHP 默认为text/html. 这迫使您编写 JavaScript,上面写着“不要相信服务器,以 JSON 而不是 HTML 来威胁它”。

您可以通过以下方式解决此问题:

header('Content-Type: application/json');
echo json_encode($_POST);
于 2012-12-12T09:16:47.630 回答