2014-04-22 133 views
2

我angularjs $http

userId = '1'; 

$http({ 
url: "php/loadTab.php", 
method: "POST", 
data: userId 
}).success(function(data, status, headers, config) { 
    console.log(data); 
}).error(function(data, status, headers, config) { 
}); 

赫克,POST不將數據發送到我的PHP。我確實echo $ _POST ['userId']它返回未定義的索引。我也嘗試data:'userId':'1'

+2

你試過'data:{'userId':'1'}'? –

+0

@SubirKumarSao是的,沒有工作 – user3522457

+0

'$ http'發送數據爲JSON,這就是爲什麼PHP的'$ _POST'中沒有任何東西。在這裏有很多類似的問題。 – gkalpak

回答

2

Angular將數據作爲JSON發送,而不是形成編碼的鍵/值對,因此您可以將data設置爲對象。你幾乎有它在你的第二次嘗試,但你需要包括大括號,它定義的對象:

data: { 'userId' : userId } 

現在,在PHP端需要訪問原始POST數據到JSON解碼像這樣:

$data = json_decode(file_get_contents('php://input')); 
echo $data->userId; 
+0

我似乎仍然沒有傳遞數據。仍然有同樣的錯誤。 – user3522457

+0

你嘗試過它,它的工作?因爲上次我查了,'$ http'默認情況下將數據發送爲JSON,所以在PHP的'$ _POST'變量中什麼也找不到。 – gkalpak

+0

@ExpertSystem所以呢?剛纔我使用params:{'userId','1'},它工作,但它是$ _GET;我需要$ _POST – user3522457