2016-10-20 16 views
1

タイトルが言ったように。私はPHPで私のバックエンドに$ http.post要求をしたいが、動作していない。私は今日のあなたに私のコードを表示してみましょう:

私のPHPで
function obtenerSesion() { 
     return $http.post(loginUrl, 
       {params: { 
        username: 'prueba123', 
        password: 'prueba123'} 
       }) 
      .then(function(response) { 
       debugger; 
       canchas = response.data; 
       return canchas; 
     }) 
     .catch(generarError); 
    } 

私はこれを持っている:PHPが実行されたときに、私は応答ステータス「200」が、このerror.txtキャッチで受け取る

. 
. 
22. $nombreUsuario= $_POST["username"]; 
23. $contrasenia= $_POST["password"]; 
. 
. 

:私のPHPはRECないのはなぜライン22

未定義のインデックスは、あなたは、私に教えてもらえデータに気づいている? ありがとう!

// EDIT //

login.php

<?php 
$response = array(); 

require("Db.class.php"); 
require("password.php"); 
require("jwt.php"); 

$settings = parse_ini_file("settings.ini.php"); 
$securityToken= '' . $settings["token"]. ''; 

$db = new Db(); 

$nombreUsuario= $_POST["username"]; //email o user 
$contrasenia= $_POST["password"]; 

// $hash = password_hash($contrasenia, PASSWORD_BCRYPT); 


$result = $db->query("SELECT ....); 

if(count($result) == 0){ 
    ... 
    ... 

私は$ nombreUsuario = 'prueba123' との$ contrasenia = 'prueba123' をハードコーディングした場合、PHPは完璧に動作!代わりに

{"params":{"username":"prueba123","password":"prueba123"}} 

+1

'params'はクエリパラメータ(つまり' $ _GET')用です。あなたは '$ _POST'の' data'を望みますが、 'application/x-www-form-urlencoded'としてエンコードすることもできます。 – Phil

+0

行の入力を読み込んでjsonを逆シリアル化します。 http.post()HTTPリクエスト – Nedev

答えて

3

あなたは、このオブジェクトを送っている

{"username":"prueba123","password":"prueba123"} 

正しいコード:

function obtenerSesion() { 
    return $http.post(loginUrl, 
      { 
       username: 'prueba123', 
       password: 'prueba123' 
      }) 
     .then(function(response) { 
      debugger; 
      canchas = response.data; 
      return canchas; 
    }) 
    .catch(generarError); 
} 

、その後、PHPでの生の入力を読み込み、JSONデシリアライズこのように:

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

$request = json_decode($postdata); 
$nombreUsuario = $request->username; 
$contrasenia = $request->password; 

EDIT://

チャットの会話の後これは私が彼を提供するコードされています。私たちは、のためにx-www-form-urlencodedでエンコード/要求アプリケーションを

function obtenerSesion() { 
    return $http({ 
    method: 'POST', 
    url: loginUrl, 
    headers: {'Content-Type': 'application/x-www-form-urlencoded'}, 
    transformRequest: function(obj) { 
    var str = []; 
    for(var p in obj) 
    str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p])); 
    return str.join("&"); 
    }, 
    data: {username: 'prueba123', password: 'prueba123'} 
    }).then(function successCallback(response{ 
    debugger; 
    canchas = response.data; 
    return canchas; 
    }, function errorCallback(response) { 
    //do something 
    console.log(response); 
    }); 

変更その特定のニーズ。

+0

回答ありがとうございますが、私は私のPHPで同じエラーがあります。 –

+0

@FederickJonsあなたのPHPコードをもっと投稿できますか? – Nedev

+0

私はPHPを編集しました。 –

関連する問題