2012-12-12 74 views
0

我是新的Web服務。我有以下代碼,當我嘗試在本地主機上運行它時,我不需要輸出......它顯示FirstName:undefinedLastName:undefined ..PHP Web服務與JSON不工作

以下是我的代碼

$(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); 
+1

您能不能告訴我們的回聲json_encode的輸出? –

+0

輸出是姓氏:undefined姓氏:undefined – MidhuN

+1

我們希望看到PHP回聲的輸出不是JavaScript的警報,這可以通過在瀏覽器中打開控制檯並讀出響應來完成。 –

回答

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); 
+0

+1的說明 – Swarne27

+0

了很多... – MidhuN