首頁 >web前端 >js教程 >如何在沒有 jQuery 的情況下使用 AngularJS 的 $http 服務發布 URL 編碼的表單資料?

如何在沒有 jQuery 的情況下使用 AngularJS 的 $http 服務發布 URL 編碼的表單資料?

Linda Hamilton
Linda Hamilton原創
2024-12-03 17:12:14408瀏覽

How to POST URL-Encoded Form Data with AngularJS's $http Service Without jQuery?

在沒有jQuery 的情況下使用$http 發布URL 編碼的表單資料

使用AngularJS 的$http 服務進行AJAX 呼叫時,在發送需要的表單資料時可能會遇到挑戰URL 編碼。對於那些尋求無 jQuery 解決方案的人來說,這尤其令人沮喪。

問題

嘗試使用Angular 的$http 服務透過以下方法傳送表單資料會導致失敗:

  • 資料:{使用者名稱:$scope.userName,密碼: $scope.password}
  • params: {使用者名稱: $scope.userName, 密碼: $scope.password}
  • data: JSON.stringify({使用者名稱: $scope.userName, 密碼: $scope.password})

解決方案

解決方案

data: {username: $scope.userName, password: $scope.password}
transformRequest: function(obj) {
    var str = [];
    for(var p in obj)
    str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p]));
    return str.join("&");
},

解決方案

解決方案

data: {username: $scope.userName, password: $scope.password},
headers: {
    'Content-Type': 'application/x-www-form-urlencoded'
}
成功POST URL 編碼表單數據,需要將資料物件轉換為URL​​參數。根據 Ben Nadel 的說法,Angular 預設將傳出資料序列化為 JSON,並以「application/json」內容類型發布。 要更改此行為並發布表單數據,請更新程式碼如下:此程式碼將JavaScript 物件轉換為URL​​ 編碼的字串,允許成功POST 表單數據而無需jQuery。 Angular 1.4 的增強解決方案對於 AngularJS v1.4 及更高版本,利用新添加的服務提供了更簡單的解決方案:

以上是如何在沒有 jQuery 的情況下使用 AngularJS 的 $http 服務發布 URL 編碼的表單資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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