2014-05-23 57 views
0

我有以下控制器。它工作正常(它解析數據並將它們發送到視圖中)。我唯一的問題是它不會發送$ http請求。這裏是控制器的代碼塊(我只是發送測試$ http沒有任何價值的視圖只是爲了測試它的工作與否,這是行不通的): (這也值得一提的是,我通過瀏覽器的控制檯檢查,看看是否任何Ajax請求被髮送或沒有)

// Controller 
LoginApp.controller("RegisterController", function($scope, $http, registerService){ 

     var username = null; 
     var password = null; 

     $scope.registerSubmit = function(){ 
      username = $scope.register.username; 
      password = $scope.register.password; 


     }; 


     //registerService.CheckUser(); 
     $http.post('server.php', {name : 'something'}) 

      .success(function(data, status, header, config){ 

       return data; 

      }) 

      .error(function(data, status, header, config){ 

       return data; 

      }); // end of $http request 
    }); 

編輯:我已經編輯@JoshBeam建議是什麼,將數據傳遞到後(),但它不會改變任何東西。

+1

根據[angularJS API](https://docs.angularjs.org/api/ng/service/$http #post),$ http.post需要一些數據。嘗試發送一個空的對象進行測試,例如。 'http.post(「server.php」,{})'或類似的東西。 – abtrout

+0

你在做什麼應該可以正常工作(見這個小提琴:http://jsfiddle.net/ahchurch/Psq7P/1/) - 你看到任何其他錯誤?我們可以看到您設置的視圖代碼嗎?想知道如果你的控制器沒有被調用,請檢查你的路線... –

+0

是你的控制器在你的html中定義?確保您的控制器正在使用中。此外,它看起來像你的代碼沒有做任何事情,'返回數據'沒有被用在你的代碼中的任何地方。 –

回答

1

您需要將數據與HTTP請求一起傳遞。根據AngularJS documentation,它是在這種格式:post(url, data, [config]);

因此:

$http.post('server.php', /* your data */); 
+0

未解決,請參閱更新的問題 –

+0

@ MT-Developer,什麼不起作用? HTTP請求是否向服務器發送數據?另外,如果使用'return data',它將不會更新任何內容,因爲XMLHttpRequests是異步的。 –