Javascript 使用Angular.js中的post不起作用

Javascript 使用Angular.js中的post不起作用,javascript,angularjs,node.js,mongodb,express,Javascript,Angularjs,Node.js,Mongodb,Express,我构建了一个RESTAPI来在mongodb中添加TODO。我可以在postman中使用以下设置成功保存实例: x-www-form-urlencoded,值text=“Test”,已完成:“false” 现在,当我尝试用Angular复制时,它不起作用,todo被保存,但没有文本和完成属性,我似乎无法从body访问文本或完成的值。我做错了什么?代码如下: 角度HTML: <div id="todo-form" class="row"> <div cla

我构建了一个RESTAPI来在mongodb中添加TODO。我可以在postman中使用以下设置成功保存实例:

x-www-form-urlencoded,值text=“Test”,已完成:“false”

现在,当我尝试用Angular复制时,它不起作用,todo被保存,但没有文本和完成属性,我似乎无法从body访问文本或完成的值。我做错了什么?代码如下:

角度HTML:

<div id="todo-form" class="row">
            <div class="col-sm-8 col-sm-offset-2 text-center">
                <form>
                    <div class="form-group">

                        <!-- BIND THIS VALUE TO formData.text IN ANGULAR -->
                        <input type="text" class="form-control input-lg text-center" placeholder="I want to buy a puppy that will love me forever" ng-model="formData.text">
                    </div>

                    <!-- createToDo() WILL CREATE NEW TODOS -->
                    <button type="submit" class="btn btn-primary btn-lg" ng-click="createTodo()">Add</button>
                </form>
            </div>
        </div>
REST-API:

router.post('/addtodo', function(req,res) {
  var Todo = require('../models/Todo.js');
  var todo = new Todo();

  todo.text = req.body.text;
  todo.completed = req.body.completed;

  todo.save(function (err) {
    if(!err) {
      return console.log("created");
    } else {
      return console.log(err);
    }
  });

  return res.send(todo);

});

$http.post
使用
application/json
而不是
application/x-www-form-urlencoded
发送数据

如果您使用的是body解析器,请确保包含了JSON中间件

app.use(bodyParser.json());
或者更改角度的默认标题

module.run(function($http) {
    $http.defaults.headers.post = 'application/x-www-form-urlencoded';
});

嗯,我有app.use(bodyParser.json());use(bodyParser.urlencoded({extended:false}));在my app.js中,但它不起作用?请确保在todoform页面中添加了控制器
module.run(function($http) {
    $http.defaults.headers.post = 'application/x-www-form-urlencoded';
});