$ http.post не работает внутри функции ng-click в Angular Js

0

Я разрабатываю проект с Anjular js и Codeigniter 3. Я столкнулся с некоторыми проблемами с маршрутизацией в угловых js. У меня есть страница просмотра со списком деталей пользователей, и внутри этого списка есть тег с ng-click = "myName()". Я объявил эту функцию внутри моего js файла, и эта функция работает нормально.

<div class="container" ng-controller="ListController">

    <div class="row">
        <div class="col-lg-12 text-center">
            <h1>Starter Template</h1>
            <p class="lead">Complete with pre-defined file paths that you won't have to change</p>

            <div class="row">
                <div class="col-sm-6 col-md-4 wow zoomIn" data-wow-delay="0.5s" ng-repeat="items in artists">
                    <div class="thumbnail">
                        <img ng-src="{{settings.base_url}}/application/assets/images/profile/{{items.shortname}}.jpg" alt="...">

                        <div class="caption">
                            <h3>{{items.name}}</h3>
                            <p>{{items.bio}}</p>
                            <p><a href="{{settings.base_url_controller}}auth/functionOne" class="btn btn-primary" ng-click="myName()" role="button">Button</a> <a href="#" class="btn btn-default" role="button">Button</a></p>
                        </div>
                    </div>
                </div>


            </div>
        </div>
    </div>

Внутри этой функции "myName()" Я написал $ http.post для получения функции внутри контроллера (Codeiginter controller). Я использую auth.php как контроллер, а функция functionOne() - это функция для извлечения.

var base_url_abs = window.location.origin;
var base_url = base_url_abs+'/AngularExPack/Angular_Bootstrap_CI_1/';
var base_url_controller = base_url_abs+'/AngularExPack/Angular_Bootstrap_CI_1/index.php/';

    myApp.controller('ListController', ['$scope', '$http', 'settings', function($scope, $http) {

$http.get('application/datas/data.json').success(function (data){
    $scope.artists =  data;
  });
$scope.myName = function() {
         alert("hai1");
/*
         $http.post(base_url_controller+'auth/functionOne/').success(function (response){
          $scope.data = response
          console.log(response);
          //alert($scope.data);
        });*/


    /**/ $http({
          method  : 'POST',
          url     : base_url_controller+'auth/functionOne/',
          headers : {'Content-Type': 'application/x-www-form-urlencoded'} 
         })
         .success(function(data) {
            $scope.data = response
          console.log($scope.data);
          alert($scope.data);
          });

    }

}]);

Когда я запускаю это, происходит ошибка и отображается так же внутри консоли

Изображение 174551

Но я получаю правильный результат, когда я нажимаю на эту ссылку, а также, если я дам путь base_url внутри href внутри тега.

<a href="{{settings.base_url_controller}}auth/functionOne" class="btn btn-primary" ng-click="myName()" role="button">Button</a> <a href="#" class="btn btn-default" role="button">Button</a>

Но то, что мне нужно, находится внутри этой функции myName. Мне нужно получить доступ к функции функции functionOne(), используя $ http с помощью угловых js. Это возможно.?

Если кто-нибудь знает, пожалуйста, помогите мне найти решение в ng-click. Исправьте меня, если я написал неправильный код.

Спасибо.

  • 1
    GET работает, POST - нет. Так что в вашем бэкэнде что-то не так.
  • 0
    Ответы кода состояния 403 являются результатом того, что веб-сервер настроен на запрет доступа, поэтому это проблема конфигурации. Вы пытались заменить "window.location.origin;" по строке?
Показать ещё 3 комментария
Теги:
codeigniter
ngroute
http-post

1 ответ

0

вы должны использовать

         $http({
             method  : 'GET',
             url     : base_url_controller+'auth/functionOne/',
             headers : {'Content-Type': 'application/x-www-form-urlencoded'} 
         })
         .success(function(data) {
             $scope.data = data
             console.log($scope.data);
             alert($scope.data);
          });
  • 0
    «ReferenceError: ответ не определен» показывает, когда я использовал GET.
  • 0
    заменить его данными, как в моем коде
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню