javascript - 如何用 Angular 替换 $ ('form' )

标签 javascript angularjs

我想发送一些表单数据,使用 Json 格式的 AngularJS HTTP POST,以便它可以从 NodeJS 和 MongoDB 移植到 Apache MySQL PHP 和从 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 
}

我不想创建几个函数来发送各种不同的表单。用户名和密码只是最基本的。

我一直在寻找一种方法来一次将所有表单传递给我的请求。 我不想为此使用 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')。

最佳答案

如果你想要一个对象而不是数组,你应该使用 jQuery.serialize() 而不是 jQuery.serializeArray()

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

{
    username: "The Master User",
    password: "password",
    ajaxKey: "Mykey"
}

您使用标准输入有特定原因吗?这是一个主要的矫枉过正,您可以简单地使用超全局 $_POST,它是一个关联数组:

if($_POST['ajaxKey'] == "Mykey"){
    // do something here
}

关于javascript - 如何用 Angular 替换 $ ('form' ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48194572/

相关文章:

javascript - AngularJS $http.delete 破坏了 "TypeError: Cannot assign to read only property ' 方法’..”

javascript - Angularjs ng-repeat $last 在 IE 7.0 中为空

javascript - 如何将 JQuery Mobile 数据角色 ="listview"样式应用到 AJAX php/MySQL 页面结果

angularjs - ng-repeat只显示最后一个元素

javascript - Angular Input Upload - 获取文件名并上传

javascript - AngularJS 按代码过滤

javascript - Foundation - 淡出之前淡入的叠加层?

javascript - WebAppLocalServer 未定义(android 设备)

javascript - 我如何通过将元素键入输入文本字段来验证元素是否存在?

javascript - 在 Javascript 中格式化 32 个字符的随机字符串