首页 >web前端 >js教程 >如何在 AngularJS 中使用 $http 发布 URL 编码的表单数据?

如何在 AngularJS 中使用 $http 发布 URL 编码的表单数据?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-24 13:15:13811浏览

How to POST URL-Encoded Form Data Using $http in AngularJS?

在 AngularJS 中使用 $http 发布 URL 编码的表单数据

使用 AngularJS 时,开发人员经常面临对远程进行 AJAX 调用的任务服务器。为了发送参数,已经探索了多种方法。

一种方法涉及使用 jQuery 的 $.param() 函数。然而,为了消除 jQuery 依赖,我们考虑了其他几个选项,包括将数据作为对象传递、使用 params 以及利用 JSON.stringify。

解决方案在于将传出请求数据从对象转换为 URL参数。 AngularJS 默认将数据序列化为 JSON 以便发布。要以 FORM 帖子形式发布,必须更改序列化算法,并且内容类型必须设置为“application/x-www-form-urlencoded”。

以下修改后的代码演示了如何执行此操作:

$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 () {});

如需进一步指导,请参阅 Ben Nadel 的博客或上面提供的示例。

以上是如何在 AngularJS 中使用 $http 发布 URL 编码的表单数据?的详细内容。更多信息请关注PHP中文网其他相关文章!

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