AngularJS $ http.post не отправляет данные в бэкэнд REST Django - PullRequest
0 голосов
/ 01 июля 2018

Я следую этому руководству (https://thinkster.io/django-angularjs-tutorial#registering-new-users) и пытаюсь разместить информацию в своем бэкэнде. Когда я открываю URL API для своего локального хоста, я могу без проблем отправить информацию в DRF. Но нет с угловой

(function () {
  'use strict';

  angular
    .module('thinkster.authentication.services')
    .factory('Authentication', Authentication);


  Authentication.$inject = ['$cookies', '$http'];


  function Authentication($cookies, $http) {

    var Authentication = {
      register: register
    };

    return Authentication;


    function register(email, password, username) {
      return $http.post('/api/v1/accounts/', {
        username: username,
        password: password,
        email: email,
      });
    }
  }
})();

Это моя форма:

<div class="row">
  <div class="col-md-4 col-md-offset-4">
    <h1>Register</h1>

    <div class="well">
      <form role="form" ng-submit="vm.register()">
        <div class="form-group">
          <label for="register__email">Email</label>
          <input type="email" class="form-control" id="register__email" ng-model="vm.email" placeholder="ex. john@notgoogle.com" />
        </div>

        <div class="form-group">
          <label for="register__username">Username</label>
          <input type="text" class="form-control" id="register__username" ng-model="vm.username" placeholder="ex. john" />
        </div>

        <div class="form-group">
          <label for="register__password">Password</label>
          <input type="password" class="form-control" id="register__password" ng-model="vm.password" placeholder="ex. thisisnotgoogleplus" />
        </div>

        <div class="form-group">
          <button type="submit" class="btn btn-primary">Submit</button>
        </div>
      </form>
    </div>
  </div>
</div>

редактирование:

controller.js

/**
* Register controller
* @namespace thinkster.authentication.controllers
*/
(function () {
  'use strict';

  angular
    .module('thinkster.authentication.controllers', [])
    .controller('RegisterController', RegisterController);

  RegisterController.$inject = ['$location', '$scope', 'Authentication'];

  /**
  * @namespace RegisterController
  */
  function RegisterController($location, $scope, Authentication) {
    var vm = this;

    vm.register = register;

    /**
    * @name register
    * @desc Register a new user
    * @memberOf thinkster.authentication.controllers.RegisterController
    */
    function register() {
      Authentication.register(vm.email, vm.password, vm.username);
    }
  }
})();

enter image description here

модуль маршрутизации:

(function () {
  'use strict';

  angular
    .module('thinkster.routes', [])
    .config(config);

  config.$inject = ['$routeProvider'];

  /**
  * @name config
  * @desc Define valid application routes
  */
  function config($routeProvider) {
    $routeProvider.when('/register', {
      controller: 'RegisterController', 
      controllerAs: 'vm',
      templateUrl: 'thinkster-django-angular-boilerplate/static/register.html'
    }).otherwise('/');
  }
})();

Когда я нажимаю «Отправить», страница перезагружается, но я никогда не отправляю данные, я не уверен, что не так, я отлично следую учебному пособию. Я посмотрел на некоторые другие ответы, но может ли это быть связано с типом контента? Я пытался их реализовать, но не уверен, как это сделать правильно

...