2016-07-08 7 views
0

AngularJsからPHPへのPOSTを初めて使用しました。AngularJs PHPへのAJAX POST

しかし、Googleは私の友人である - あるいはので、私は思いました。見つかっ

いくつかのグーグルによると、これは正常に動作する必要がありますできます

AngularJs:

var data = $.param({ 
     json: JSON.stringify({ 
      userName: $scope.registrationData.userName, 
      email:  $scope.registrationData.email, 
      password : forge_sha256($scope.registrationData.password) 
     }) 
    }); 

    var url = HOST + 'api/register.php?debug';  
    console.log('Register at ' + url); 

    $http.post(url, data) 

PHP

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

ChromePhp::log('API: JOSON data = ' . $postdata); 
ChromePhp::log('API: decoded data = ' . $request); 

しかし、これら2 ChromePhp::logは、ブラウザのコンソールでこれを示した:

%cF:\DropBox\programs\Xampp\htdocs\api\register.php : 17 
log.js:137 API: JOSON data = json=%7B%22userName%22%3A%22n%22%2C%22email%22%3A%22e%22%2C%22password%22%3A%22148de9c5a7a44d19e56cd9ae1a554bf67847afb0c58f6e12fa29ac7ddfca9940%22%7D 
log.js:81 %cF:\DropBox\programs\Xampp\htdocs\api\register.php : 18 
log.js:137 API: decoded data = 

デコードされたJSONは空です:-(だから、私のエンコーディングやデコードで何かがうまくいかない。

私はそれを見て、それに近づきすぎだ - ああ、私のドールを見つけることができます誰?

答えて

1

:あなたはより多くの情報を取得します

$uesrName = $_POST['userName']; 
$email = $_POST['email']; 
$password = $_POST['password']; 

:あなたのようなデータにアクセスすることができますJSONとしてデータを送信するには、次のように単純にする必要があります。

var data = { 
    userName: $scope.registrationData.userName, 
    email: $scope.registrationData.email, 
    password: forge_sha256($scope.registrationData.password) 
}; 

... 

$http.post(url, data); 

また、Chromeのデベロッパーツールの[ネットワーク]タブを確認して、Angularアプリケーションから送信されている内容を確認することもできます。そうすれば、それがクライアント側の問題かサーバー側の問題かを正確に突き止めることができます。

0

あなたは次のように試すことができます次のいずれかの

var data = $.param({userName:$scope.registrationData.userName, 
        email:$scope.registrationData.email, 
        password:forge_sha256($scope.registrationData.password)});   
var config = {headers : {'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;'}} 

$http.post("url/to/ur/file",data,config) 
.success(function(response) { 
    $scope.data = response; 
}); 

はPHP:あなたがしたい場合はhttps://docs.angularjs.org/api/ng/service/ $ HTTP

+1

これはOPがJSONを望んでいないことを前提にしていますか? – Ankh

+0

良い点(+1)ですが、動作している限りは気にしません – Mawg

関連する問題