Javascript $http angularjs POST don';你不发送我的数据吗?

Javascript $http angularjs POST don';你不发送我的数据吗?,javascript,ajax,angularjs,Javascript,Ajax,Angularjs,我的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。我确实e

我的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$\u POST['userId']它返回了未定义的索引。我还尝试了
数据:'userId':'1'

Angular以JSON的形式发送数据,而不是形成编码的键/值对,因此您可以将
数据设置为对象。在第二次尝试时,您几乎已经拥有了它,但您需要包括花括号,它定义了一个对象:

data: { 'userId' : userId }
现在,在PHP端,您需要访问原始POST数据来解码JSON,如下所示:

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

您是否尝试过
数据:{'userId':'1'}
?@SubirKumarSao是的,不工作
$http
将数据作为JSON发送,这就是为什么PHP的
$\u POST
中没有任何内容。这里有很多类似的问题。可能是重复的。我知道它有一个CodeIgniter标签,但它是无关的。我似乎仍然没有传递数据。还是有同样的错误,你试过了吗?因为上次我检查时,
$http
默认情况下会以JSON的形式发送数据,所以在PHP的
$\u POST
变量中找不到任何内容。@ExpertSystem如此?刚才我使用了params:{'userId','1'},它工作了,但它是$\u GET;我需要$\u post查看我的评论。@user3522457查看更新的答案。ExpertSystem对JSON的理解是正确的,因此您需要在PHP端以不同的方式访问它。