AngularJS HTTP Post 到PHP:解決未定義的變數
您的AngularJS 程式碼遇到了發佈到PHP 腳本的資料顯示為未腳本的資料顯示為未定義的問題。為了解決這個問題,我們需要深入研究細節。
在您的 AngularJS 程式碼中,您定義了一個 Content-Type 標頭為「application/x-www-form-urlencoded」的 HTTP POST 請求。但是,您的資料未格式化為查詢字串。 PHP 依賴 $_POST 接收表單編碼數據,需要將資料格式化為鍵值對。
要解決此問題,有兩個選項:
選項1:使用JSON
AngularJS 預設使用「application/json」Content-Type標頭進行HTTP 請求。您可以透過讀取 PHP 中的原始輸入並反序列化 JSON 來利用這一點。這可以使用以下PHP 程式碼來完成:
$postdata = file_get_contents("php://input"); $request = json_decode($postdata); $email = $request->email; $pass = $request->password;
選項2:手動格式化查詢字串
如果您喜歡使用$_POST,您可以手動格式化您的資料作為查詢字串。確保它是 URL 編碼的。在 JavaScript 中,您可以使用以下方法實現此目的:
let data = "email=" + encodeURIComponent($scope.email) + "&password=" + encodeURIComponent($scope.password);
將 HTTP 請求資料設定為此格式化的查詢字串而不是當前格式。透過這些調整,您的 AngularJS HTTP POST 請求將正確地將資料傳送到您的 PHP 腳本,解決了未定義變數的問題。
以上是為什麼我的 PHP 腳本中未定義 AngularJS HTTP POST 變數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!