首頁 >後端開發 >php教程 >為什麼我的 Angular HTTP POST 值在 PHP 中未定義,如何修復它?

為什麼我的 Angular HTTP POST 值在 PHP 中未定義,如何修復它?

Barbara Streisand
Barbara Streisand原創
2024-12-15 15:33:15394瀏覽

Why are my Angular HTTP POST values undefined in PHP, and how can I fix it?

Angular HTTP POST 到PHP:處理未定義的POST 值

在AngularJS 中,對請求要求執行HTTPP 端點執行HTTP未定義的值伺服器端的POST 值。當預期資料格式與 Angular 應用程式傳送的實際資料不符時,就會發生這種情況。

要解決此問題,確保正確設定 Content-Type 標頭至關重要。預設情況下,AngularJS 將此標頭設定為“application/json”。但是,如果您要傳送表單編碼的數據,則需要覆寫它。

在提供的程式碼中,以下行將Content-Type 標頭設定為「application/x-www-form-urlencoded; charset=UTF-8":

$http.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8';

但是,這需要修改傳送的資料以符合表單編碼格式。不需要將資料作為物件發送,而是需要將其轉換為查詢字串。這可以透過使用 jQuery.serialize() 或使用encodeURIComponent() 手動建立查詢字串來完成。

或者,如果您喜歡使用 PHP 的 $_POST 功能,您可以保留預設標頭設定並修改用於從請求正文讀取原始輸入並解碼 JSON 的 PHP 程式碼。這可以透過以下程式碼來實現:

$postdata = file_get_contents("php://input");
$request = json_decode($postdata);
$email = $request->email;
$pass = $request->password;

透過對齊資料格式和標頭設置,可以確保 PHP 端正確接收 POST 值。

以上是為什麼我的 Angular HTTP POST 值在 PHP 中未定義,如何修復它?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn