2016-04-23 13 views
0

AlamoFireからリクエストを受け取ったとき、PHPのスクリプトはPOST、GET、REQUESTのどちらの変数も認識しません。 AlamoFireでPHP WampサーバがAlamoFireリクエストからパラメータを受け取っていません

コードは

let parameters: [String: AnyObject] = 
     ["email" : email, 
     "password": password] 

    Alamofire.request(.POST, url, parameters: parameters, encoding: .JSON) 
     .responseJSON { response in 

      print(response) 

      switch response.result { 

      case .Success: // Connection stablished 



      case .Failure(let error): // Connection not stablished 
       print(error) 
       self.showLoginError(Constants.connectionError) 
      } 
    } 

とPHPのコードである:

$response = array(); 
header('Content-Type: application/json'); 
if (isset($_POST['email']) && isset($_POST['password'])) { 
    ... stuff 
}else{ 
    $response["Failure"] = 1; 
    $response["message"] = "Required field(s) is missing"; 
    echo json_encode($response); 
} 

そしてAlamoFireにおける応答は、常に一点で要求フィールド

のメッセージであるJSON PHPが私にこのエラーを通知しました: PHP廃止予定:$ HTTP_RAW_POST_DATAを自動的に設定することは推奨されなくなりました。将来のバージョンで移動しました。この警告を避けるには、php.iniの 'always_populate_raw_post_data'を '-1'に設定し、代わりにphp://入力ストリームを使用します。ライン0

上の不明に私は-1に always_populate_raw_post_data のオプションでのphp.iniを変更し、私は今の私何な状態に私に達していました。

しかし、リクエストURLがこのようなものであれば、http://192.168.1.108:8080/labor/[email protected]&password=brown1234がサーバーに送信されます。また、NSURLSessionを使用してHTTP Bodyの一部としてパラメータを使用してリクエストを作成する場合、サーバーはそれらを取得します。

答えて

0

あなたはそれを受け取っていないことをどのように知っていますか? alomfireがそれを送信しているかどうかあなたはどのように知っていますか? 'エコー'を使用すると、あなたのPHPスクリプトに戻ってくるものを参照してください。実際にjson値であれば、それらを使用または割り当てる前にjson値をデコードする必要があることを覚えておいてください。 How to decode json

$mymail= ($_POST['email']); 
$mypass= ($_POST['password']); 
echo $mymail; 
echo $mypass; 

//Decode your json first here 

if ($mymail && $mypass) { 
    ... stuff 
}else{ 
$response["Failure"] = 1; 
$response["message"] = "Required field(s) is missing"; 
echo json_encode($response); 

}

関連する問題