首页 >web前端 >js教程 >如何在没有 jQuery 的情况下在 AngularJS 中发布 URL 编码的数据?

如何在没有 jQuery 的情况下在 AngularJS 中发布 URL 编码的数据?

DDD
DDD原创
2024-12-04 03:20:11202浏览

How to POST URL-Encoded Data in AngularJS without jQuery?

在不使用 jQuery 的情况下使用 $http 发布 URL 编码数据

作为 AngularJS 新手,您正在寻找一种无需使用 jQuery 即可发出 AJAX 请求的方法依赖 jQuery。虽然您最初使用 $.param 的方法有效,但您希望消除 jQuery 依赖项。

您随后对数据和参数的尝试未能产生所需的结果,并且 JSON 字符串化也被证明是不成功的。 AngularJS 当然为此提供了一种方法,所以让我们探索一下解决方案。

转换 URL 参数的数据

通过 POST 发送表单数据的关键是转换你的对象数据到 URL 参数中。 AngularJS 提供了一个transformRequest 函数,允许您在发送之前自定义请求正文。

带有转换的 Post 请求示例

$http({
    method: 'POST',
    url: url,
    headers: {'Content-Type': 'application/x-www-form-urlencoded'},
    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}
}).then(function () {});

在此示例中:

  • transformRequest 函数迭代提供的对象,对每个键进行编码并值。
  • 然后将编码的键值对连接成一个由与号 (&) 分隔的字符串。

AngularJS 1.4 及更高版本

AngularJS 1.4 及更高版本引入了新服务来进一步简化此过程。然而,上述方法对于早期版本仍然是有效的解决方案。

以上是如何在没有 jQuery 的情况下在 AngularJS 中发布 URL 编码的数据?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn