Javascript angularjs方法“$http.post”是如何工作的?

Javascript angularjs方法“$http.post”是如何工作的?,javascript,angularjs,Javascript,Angularjs,我只是在使用这个代码,我想提醒它的反应 $http.post('test.php',{id:index}); 所以我用了这个代码 alert(($http.post('test.php',{id:index}).data)); 我不明白angularjs方法$http.post与下面的代码有什么不同。数据是如何在上面的代码中出现的 $http({ url: "test.php", method: "POST", data: {id:index} }).success(

我只是在使用这个代码,我想提醒它的反应

$http.post('test.php',{id:index});
所以我用了这个代码

alert(($http.post('test.php',{id:index}).data));
我不明白angularjs方法
$http.post
与下面的代码有什么不同。数据是如何在上面的代码中出现的

$http({
    url: "test.php",
    method: "POST",
    data: {id:index}
}).success(function(data) {
   alert(data);
}).error(function(error) {
});
php是

<?php
    echo "TestName";
?>

您的代码

  • 假定
    post
    函数返回一个对象,该对象上有
    data
    属性

  • 假设执行post时,
    post
    功能块(例如,同步)

  • 这些假设都不正确
    post
    启动post,但在post完成之前立即返回。它返回的值是一个promise,这是一种处理异步操作回调的形式化方法。承诺有
    然后
    错误
    ,以及类似的功能

    在第二个示例中,代码运行,然后在POST完成后,如果成功,则调用
    success
    回调,传递数据


    这在和(承诺)中有介绍。

    谢谢,现在我注意到您的信息:
    成功
    错误
    方法已被弃用:“已弃用$http旧版promise方法success和error。改用标准then方法。如果$httpProvider.useLegacyPromiseExtensions设置为false,则这些方法将抛出$http/legacy error.。因此,不要使用
    $http().success().error();
    而使用
    $http()。然后(函数已解析(){},函数已拒绝(){});
    请参阅: