首頁 > 後端開發 > php教程 > 為什麼我的 PHP 腳本中的 AngularJS $http.post() 變數未定義?

為什麼我的 PHP 腳本中的 AngularJS $http.post() 變數未定義?

Linda Hamilton
發布: 2024-12-22 16:22:14
原創
546 人瀏覽過

Why are my AngularJS $http.post() variables undefined in my PHP script?

AngularJS:使用PHP 進行HTTP POST 未定義變數

使用$http.post() 提交AngularJS 表時,PHP 收到單時的變數儘管收到200 OK,但腳本可能顯示為未定義

原因

預設情況下,AngularJS 將 HTTP POST 請求的 Content-Type 標頭設為 application/json。但是,如果發送表單編碼的有效負載而不是 JSON 數據,PHP 將不會按預期填充 $_POST 數組。

解決方案

主要有兩種解決方案:

  1. 使用默認JSON標頭:

    • 保留application/json 的預設Content-Type 標頭。
    • 在 PHP 中,讀取原始輸入並使用 json_decode() 反序列化 JSON 資料。
  2. 傳送表單編碼資料:

    • 將Content-Type 標頭設定為application/x-www-form -urlencoded。
    • 手動形成查詢字串,例如 email=example @email.com&password=secret 並將其作為資料負載發送。
    • 確保使用以下方式對查詢字串進行URL 編碼encodeURIComponent().

修改後的PHP 範例

修改後的PHP 範例
$query_string = file_get_contents("php://input");
parse_str($query_string, $data);
$email = $data['email'];
$password = $data['password'];
登入後複製
對於第二個種解決方案:

以上是為什麼我的 PHP 腳本中的 AngularJS $http.post() 變數未定義?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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