2015-05-05 2 views
1

Я хотел бы отправить запрос на отправку в свой API. Он работает с JQuery:Сообщение с AngularJS не работает

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> 
<script> 
    $.ajax({ 
    type: "POST", 
    url: "api.php?option=inscription", 
    data: {lol : "mess"} 
}); 
</script> 

Но не с AngularJS:

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"> </script> 
{{1+1}} 
<script> 
$http.post('api.php?option=inscription', {lol : "mess2"}) 
.success(function(){alert('cool');}); 
</script> 

Если кто-то может помочь мне. Спасибо !

ОБНОВЛЕНИЕ: Спасибо за ваши ответы, я хотел упростить, но это было неясно. Поэтому с вашей помощью это мой новый код, и проблема такая же. Данные в бэкэнд пусты;

интерфейс:

<html ng-app="myApp"> 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"> </script> 

<div ng-controller="MainCtrl"></div> 
{{data}} 

<script> 
var app = angular.module('myApp', []); 

app.service('SomeService', function($http) { 
this.readData = function(dataUrl, dataTobePosted) { 

    var back = $http.post(dataUrl, dataTobePosted); 

    back.success(function(data){ 
     console.log(data); 
     return data; 
    }).error(function(data, status, headers, config) { 
     return status; 
}); 
    } 
}); 

app.controller('MainCtrl', function($scope, $http, SomeService){ 
$scope.readData = function(url) { 
    var dataTobePosted = {"lol": "mess"}; 

    $scope.data = SomeService.readData(url, dataTobePosted); 
} 

$scope.readData('api.php?option=inscription'); 
}); 
</script> 
</html> 
+1

Вы вводили $ http в контроллер? @LekimR –

ответ

0

Мой плохой, моя проблема возникла из моего внутреннего интерфейса в PHP я просто получить мои данные с:

$data = json_decode(file_get_contents("php://input")); 

, а не $ _POST

1

Вы используете AngularJS, как будто это JQuery. Это не. AngularJS работает с инъекцией зависимостей, поэтому вам нужно обернуть свой вызов $ http внутри контроллера.

Возможно, вам стоит ознакомиться с AngularJS. Некоторые полезные ссылки:

2

Для ясности я предлагаю простую реализацию. Однако для того, чтобы точно понять поведение, может потребоваться дополнительное чтение.

angular.module('myApp').service('SomeService', function($http) { 
    this.readData = function(dataUrl, dataTobePosted) { 
     // read data; 
     return $http.post(dataUrl, dataTobePosted) 
      .then(function(res) { 
       return res.data; 
      }, function(res) { 
       return res; 
      } 
    } 
    return this; 
}); 

angular.module('myApp').controller('MyController', function($scope, SomeService) { 
    $scope.readData = function(url) { 
     var dataTobePosted = {"lol": "mess"}; 

     SomeService.readData(url, dataTobePosted) 
     .then(function(res) { 
      $scope.data = res; 
     }, function(res) { 
      // Display error 
     } 
    } 

    $scope.readData('api.php?option=inscription'); 
} 

Использование в HTML странице

<div ng-controller="MyController"> 
    {{data}} 
</div> 
Смежные вопросы