如何用Angular

时间:2018-01-10 19:16:16

标签: javascript angularjs

我希望使用Json格式的AngularJS HTTP POST发送一些表单数据,因此它可以从NodeJS和MongoDB移植到Apache MySQL PHP中。

所以我认为Json是所有这一切的共同基础。

我注意到如果我们将原始Json数据发布到PHP,我们就无法使用 $ _ POST 变量。

我们必须使用;

$postData = file_get_contents("php://input");

并参考这样的数据

$jsonData = json_decode($postData);
$jsonData->someValueName

我在Angular中的HTTP请求是以json格式发送信息。

Ex以纯文本形式;

{username:"Charlie", password:"Delta"}

这些值来自Angular模型,使用$ http

发送
 $http({
        method: 'post',
        url: 'ajax-processor.php',       // could be Node as well
        headers: {'Content-Type': 'Content-Type: application/json'},
        data:  { username: $scope.username, password:$scope.password}      
    }).then(function successCallback(response) { 
// deal with response 
}

我不想做几个函数来发送所有类型的diffrents表单。用户名和密码只是基本的。

我一直在寻找一种方法将所有表单一次性传递给我的请求。 我不想为此使用Jquery。即使我真的喜欢我能够实现这一目标的事实。

实施例

$http({
            method: 'POST',
            url: 'ajax-processor.php', 
            headers: {'Content-Type': 'application/x-www-form-urlencoded'},      
            data:  $('form').serializeArray()      <-----CHANGED 
        }).then(function successCallback(response) { 
    // deal with response 
    }

现在在这种情况下 serializeArray()输出urlencode;

username=Charlie&password=Delta&etc=...

serialize()输出一个对象;

[{ 
  0: {name: "username", value: "Charlie"}
  1: {name: "password", value: "Delta"}
}]

那么如何用Angular替换$('form')。

1 个答案:

答案 0 :(得分:1)

如果你想要一个对象而不是一个数组,你应该使用jQuery.serializeArray()而不是{ username: "The Master User", password: "password", ajaxKey: "Mykey" }

这将创建一个如下所示的JSON对象:

$_POST

您使用标准输入的具体原因是什么?这是一个主要的矫枉过正,你可以简单地使用超级全局if($_POST['ajaxKey'] == "Mykey"){ // do something here } ,这是一个关联数组:

{{1}}