私はログイン認証に取り組んでおり、失敗を特定することができません。 Via AJAX私はusernameとpasswordをlogin.phpに渡します。login.phpはPHP REST APIを呼び出して資格情報を確認し、アカウントステータスとUIにプッシュバックされたメッセージを含むJSONで応答します。問題をデバッグするPHP REST API file_get_contentsによって呼び出されました
私はfile_get_contents
を使用してAPIを呼び出しています。 apiURLはlocalhost/api/v1/loginです。
login.php
$data = array('username' => $username, 'password' => $password);
$options = ["http" =>
["method" => "POST",
"header" => "Content-Type: application/json",
"content" => json_encode($data)
]
];
// Call API
$apiResponse = json_decode(file_get_contents($apiUrl, NULL, stream_context_create($options)));
問題は私のAPI呼び出しのようですが、私は問題が何であるかを把握することはできません。
API
$response = array("status" => "active", "message" => "success");
header('Content-Type: application/json');
echo json_encode($response);
私は郵便配達Chrome拡張機能を使用して、私のAPIをテストし、APIのコードが動作しているので、問題なくJSONを送受信します。 login.phpでvar_dump($apiResponse)
を実行すると、APIから返された値としてNULLが返されます。
この値がNULLの理由についての考えはありますか? apiエンドポイントを間違って呼び出していますか?
てみてください=> json_encode($ data) 'を' 'content" => http_build_query($ data) ' –
に置き換えることを忘れないでください。私は問題を理解した。私はjson_decodeがJSONを配列に自動的に変換しないことに気づいていませんでした。私は連想配列としてapiResponseに対して操作していました。私がそれを真に設定したら、それは問題を解決しました。 – Runicode