0
我正在進行登錄身份驗證,並且無法識別失敗。通過AJAX,我將用戶名和密碼傳遞給login.php,該用戶名和密碼調用PHP REST API來驗證憑據,並使用包含帳戶狀態和消息的JSON響應,並將消息推送回UI。故障調試由file_get_contents調用的PHP REST API
我打電話給api使用file_get_contents
。 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使用郵遞員Chrome擴展程序沒有問題
$response = array("status" => "active", "message" => "success");
header('Content-Type: application/json');
echo json_encode($response);
測試我的API發送和接收JSON因此API代碼工作。如果我在login.php中執行var_dump($apiResponse)
,則從API返回的值爲NULL。
有關爲什麼此值爲NULL的任何想法?我是否錯誤地調用了api端點?
嘗試使用'應用程序/ x-WWW的形式urlencoded'而不是'應用/ json'並且不要忘記用'「content」=> http_build_query($ data)替換'「content」=> json_encode($ data)'' –
感謝您的反饋。我找出了這個問題。我沒有意識到json_decode不會自動將JSON轉換爲數組,直到通過將第二個arg設置爲true來告訴它。我是作爲一個關聯數組來操作apiResponse的。一旦我將其設置爲true,它就解決了這個問題。 – Runicode