AngularJS $http post 传递参数数据的方法
今天,我将为大家详细介绍如何在AngularJS中使用$http的post方法传递参数数据。这对于许多开发者来说,特别是那些正在使用Cordova进行开发的人来说,可能是一个挑战。在这里,长沙网络推广将与你分享其经验,并希望能为大家提供帮助。
要注意的是,我们不能直接使用params来传递数据。例如:
```javascript
$http({
method: "POST",
url: "
params: {
cellphoneId: "b373fed6be325f7"
}
}).then(function(){}); //注意这里的.then(),而非原文的.suess()
```
当按照上述方式操作时,参数会被添加到URL后面,如:
接下来,如果我们直接使用data来传递数据:
```javascript
$http({
method: "POST",
url: "
data: {
cellphoneId: "b373fed6be325f7"
}
}).then(function(){}); //同样注意这里是.then()方法
```
此时的数据会存在于Request Payload中,但后端可能无法直接获取到这些数据。这是因为默认的Content-Type是application/json;charset=UTF-8,而许多后端系统可能期望的是application/x-www-form-urlencoded格式的POST请求。我们需要修改Content-Type。
然后,我们修改Content-Type为'application/x-www-form-urlencoded':
```javascript
$http({
method: "POST",
url: "
data: {cellphoneId: "b373fed6be325f7"},
headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
}).then(function(){}); //再次提醒这里是.then()方法
```
我们仍然会遇到问题,因为数据在Form Data中是作为一个对象存在的,后端可能无法直接。我们需要对参数进行序列化。以下是完整的代码示例:
```javascript
$http({
method: "POST",
url: "
data: {cellphoneId: "b373fed6be325f7"},
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
transformRequest: function(obj) {
var str = [];
for (var s in obj) {
str.push(encodeURIComponent(s) + "=" + encodeURIComponent(obj[s]));
}
return str.join("&");
}
}).then(function(){}); //记得使用.then()方法来完成promise链的处理哦!并且记得支持我们哦!关注长沙网络推广了解更多内容哦!一起来做更好的开发者!让更多的网络知识和资源服务社区能够支持大家的成长和进步吧!更多的知识和技巧就在狼蚁SEO等你哦!一起来吧!哈哈!
编程语言
- AngularJS $http post 传递参数数据的方法
- AJAX封装类使用指南
- PHP版Mysql爆破小脚本
- 深入理解JavaScript系列(30):设计模式之外观模
- 修改Laravel5.3中的路由文件与路径
- jquery-tips悬浮提示插件分享
- 详解thinkphp实现excel数据的导入导出(附完整案例
- 基于Vuex无法观察到值变化的解决方法
- php获取当前月与上个月月初及月末时间戳的方法
- zTree树形插件异步加载方法详解
- PHP中引用类型和值类型功能与用法示例
- 深入理解JavaScript系列(49):Function模式(上篇)
- PHP实现的基于单向链表解决约瑟夫环问题示例
- 基于jquery实现鼠标滚轮驱动的图片切换效果
- JS的正则表达式常用检测代码
- 浅谈JavaScript事件绑定的常用方法及其优缺点分析