Использовать $ http angularjs Обратный вызов правильно с php?

Таким образом, я пытаюсь отправить запрос на http $ angularjs на php, но он вызовет successCallback (значит, это означает, что мой запрос успешный?), Но когда я проверил свою базу данных, ничего не произошло, и мои данные все еще там. Я знаю, что здесь что-то не хватает. пожалуйста помоги.

Контроллер (который вызывает функцию checkPollCodeIfAvail )

 pollFactory.checkPollCodeIfAvail('qwe123').then(function successCallback(response){ console.log('success'); }, function errorCallback(response){ console.log('fail'); }); 

Фабрика:

 factory.checkPollCodeIfAvail = function(x){ code = x; return $http({ method: 'POST', data: { 'action' : 'checkPollCode', 'pollCode' : code }, url: 'http://localhost/poll/api.php' }); }; return factory; 

api.php

 if(empty($_POST['action'])){ return; } if(($_POST['action']) == "checkPollCode"){ $checkPollCode = $_POST['pollCode']; } switch ($_POST['action']) { case 'checkPollCode': $sql = "DELETE FROM polls WHERE pollCode = :pollcode"; $stmt = $db_con->prepare($sql); $stmt->bindParam(":pollcode", $checkPollCode); $stmt->execute(); if($stmt->rowCount() > 0){ echo "success"; }else{ echo "error"; } break; } 

Спасибо всем, кто может мне помочь.

В угловой попытке добавьте это

  return $http({ method: 'POST', data: { 'action' : 'checkPollCode', 'pollCode' : code }, url: 'http://localhost/poll/api.php' transformRequest:function(obj) { var str=[]; for(var p in obj){ str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p])) } return str.join("&"); }, headers:{'Content-Type':'application/x-www-form-urlencoded'} }).then(function(response){ console.log('success'); } 

Заголовком заголовка Defaut углового является application / json, и если вы не изменяете заголовок, вы должны декодировать ввод в php. Я не знаком с php и меняю форму на urlencoded.

Для приложения / x-www-form-urlencoded тело HTTP-сообщения, отправленного на сервер, по существу является одной гигантской строкой запроса – пары имя / значение разделяются амперсандом (&), а имена отделяются от значений с помощью равен символу (=). Примером этого может быть:

 MyVariableOne=ValueOne&MyVariableTwo=ValueTwo 

И этот код

 transformRequest:function(obj) { var str=[]; for(var p in obj){ str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p])) } return str.join("&"); } 

перед отправкой данных на сервер, вы зацикливаете данные и преобразуете их в x-www-form-urlencoded .

У вас есть pbm в Http

Попробуйте этот код:

 var fd = new FormData(); fd.append('action', "checkPollCode"); fd.append('pollCode', code); $http.post("http://localhost/poll/api.php", fd, { transformRequest: angular.identity, headers: {'Content-Type': undefined} }).success(function(data, status, headers, conf) { //Evrytheng OK }). error(function(data, status, headers, config) { alert("You have some error"); }); 

Не забудьте добавить $ Http в ваш контроллер:

 app.controller('YourController', ['$scope', '$http',function($scope, $http){...