一、传递参数过程中POST会出问题,问题来源:

我们都知道向后台传参可以使用get、post,其形式类似于name=iyy&id=001 。但是在angular中却发现使用$http post 进行异步传输的过程中后台是接收不到数据的,其实这个问题就是因为请求头的缘故。在angular中默认的请求头是“Content-Type":"application/json",也就是说传递参数是使用json格式。但后台默认的却是Content-Type': 'application/x-www-form-urlencoded'。因此在这样的情况下后台接收到的数据就会是空的。

那么为什么使用get形式就可以传参呢?因为get这个键的值是一个字符串map或对象,会被转换成查询字符串追加在URL后面。如果不是字符串,会被json序列化,可以理解为在get中参数的传递是直接追加在utl后面的,那么此时参数形式{“id”:"1","name":"yy"}会被转化成id=1&name=yy追加在url后面,后台就直接获取到了。

Jquery、原生Ajax:

头: Content-Type: application/x-www-form-urlencoded 传输数据 都认(经典所有服务器都认)

Angular Js:

application/json 新潮--部分服务器默认不支持

解决方法:

配置angularJs 库

配置AngularJs的POST方式

a. 修改请求头:

$http({

url,

method,

data,

headers:{ 'Content-Type':'application/x-www-form-urlencoded ' }

})

b: 修改传递内容:

transformRequest 传进去一个obj,返回一个编码编号

$http({

transformRequest(obj){

return "要传输的字符串"

//obj=>{a:"12", b:"5"}

//return "a=12&b=5"

let att= [];

for(let name in obj){

arr.push(`$(name)=$(obj[name])`);

}

return arr.join('&');

}

})

如把{a: 12, b:5 } =>"a=12&b=5"

c: 完整写法(一个完整写法、直接在module配置一次即可):

var app = angular.module('app',[]);

//方法,修改ng的请求头

app.config(function($httpProvider){

$httpProvider.defaults.transformRequest=function(obj){

let arr =[];

for(let name in obj){

arr.push(`${name}=${obj[name]}`);

}

return arr.join('&');

};

$httpProvider.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';

});

app.controller('ctrl',function($scope,$resource,$q,$http){

var defer = $q.defer();

var promise = defer.promise;

$http({

method: "post",

data:$.param({"id":"1","name":"jyy"}),

url:"1.php"

}).success(function(data){

defer.resolve(data);

});

promise.then(function(data){

$scope.data = data;

})

})

angular ajax get post 参数,Angular的Post 传递参数问题及解决方法相关推荐

  1. yii2 html form,YII2中ajax通过post提交form表单数据报400错误的解决方法

    摘要:YII2中通过ajax post表单数据需要验证CSRF否则post数据是无法提交过去的.虽然有其他人提供过解决方案,但都不够完整,除了把enableCsrfValidation设为false外 ...

  2. Angular中实现动态路由跳转并传递参数

    场景 Angular介绍.安装Angular Cli.创建Angular项目入门教程: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/detail ...

  3. Angular 项目打包之后,部署到服务器,刷新访问404解决方法

    将前端代码打包部署到Java服务器中,当跳转到相应路由界面,刷新地址,服务找不到地址页面,所以会报   404 - Page Not Found. 解决方法:只需要将路由转换成哈希值: userHas ...

  4. java客户端传递参数_java – 在客户端传递参数

    我使用RESTful Web服务.在这个Web服务中,我必须传递一个我想要保存为参数的bean. 这是服务器代码: @POST @Consumes(MediaType.APPLICATION_JSON ...

  5. dao传递类参数 mybatis_MyBatis DAO层传递参数到mapping.xml 几种方式

    Dao层传递参数到mapping.xml文件的几种方式:(Mybatis传值总结) 第一种:传递单个参数 Dao层Code片段: /** * 根据articleId查询XXXX详情. * * @par ...

  6. Dockerfile中通过ENV指定动态参数在RUN时传递参数(部署后台jar包时指定端口为例)

    场景 CentOS7中使用Dockerfile部署后台jar包: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/119818808 ...

  7. angularjs方法当做参数_AngularJS $http post 传递参数数据的方法

    在cordova开发的时候使用到了$http的post方法,传递的参数服务端怎么都接收不到,搜索了下,发现使用AngularJS通过POST传递参数还是需要设置一些东西才可以! 1.不能直接使用par ...

  8. linux的 定时器传参数,JavaScript 定时器调用传递参数的方法

    JavaScript定时器调用传递参数的方法,需要的朋友可以参考下. 无论是window.setTimeout 还是window.setInterval,在使用函数名作为调用句柄时都不能带参数,而在许 ...

  9. PHP的介绍及应用,ajax的介绍及应用,跨域问题及jsonp解决方法

    PHP(服务器编程语言) 服务器由环境(Apache),数据库(mysql),代码(HTML+css +js,php)组成. PHP必须在服务器的环境下执行 php与js最大的区别就是工作环境,PHP ...

  10. jsp传递参数java_JSP页面间传递参数方法介绍

    JSP页面间传递参数是经常需要使用到的功能,有时还需要多个JSP页面间传递参数.下面介绍一下实现的方法. (1)直接在URL请求后添加 如:< a href="thexuan.jsp? ...

最新文章

  1. mysql update 并发 慢_MySQL跑在CentOS 6 和 7上的性能比较
  2. 利用python将数据写入CSV文件中
  3. 京东千万并发 API 网关实践之路!
  4. iOS下KVO使用过程中的陷阱
  5. servletcontext 使用解析
  6. linuex查看繁忙_[个人笔记] 关于linux的常见问题合集
  7. 前端:HTML/05/lt;meta标记,XHTML简介及其编写规范,表格标签(lt;table)及其相关标签(lt;tr,lt;td或lt;th)
  8. 在centos上完全删除mysql
  9. 解决ScrollViewer嵌套的DataGrid、ListBox等控件的鼠标滚动事件无效
  10. 一文带你用python做自动化测试
  11. 【二分法】计蒜客:对数方程
  12. 编程珠玑笔记-第12章习题
  13. NOIp 2014 联合权值 By cellur925
  14. ubuntu 安装、卸载重装mysql 8.0
  15. Mac上使用exiftool生成XMP文件的方法
  16. css改变权重,1. CSS 权重
  17. saltstack处理xml文件_saltstack部署returner [三]
  18. java 订单支付_Java多订单多支付方式分配金额问题的解决
  19. POJ 图论---1_Uriel's Corner Uriel's Coding Learning Cubing Zone
  20. 全国计算机职称考试excel2003,全国计算机职称考试excel2003题库.pdf

热门文章

  1. MATLAB对图片格式批量转换
  2. 让程序结果在屏幕上暂停一段时间
  3. Matlab回归分析regress和polyfit
  4. MFC非模态对话框实例
  5. AUTOSAR从入门到精通100讲(118)-深度解析自动驾驶主流芯片及平台架构
  6. php如何和c进行数据交换,PHP与 后台c交换数据 | 学步园
  7. mysql 数据修改时间_怎样修改mysql数据中的具体时间
  8. 【TypeScript系列教程03】基础语法
  9. 问题:三元向量的比较
  10. 威海二职工业机器人专业_现在各大专开设的工业机器人专业前景如何?