首頁 > web前端 > js教程 > 為什麼我的 PHP 腳本中未定義 AngularJS HTTP POST 變數?

為什麼我的 PHP 腳本中未定義 AngularJS HTTP POST 變數?

Mary-Kate Olsen
發布: 2024-12-02 04:43:13
原創
779 人瀏覽過

Why are my AngularJS HTTP POST variables undefined in my PHP script?

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板