在 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中文网其他相关文章!