后端接收不到AngularJs中$http.post发送的数据原因分析及解决办法_AngularJS

1.问题:

后端接收不到AngularJs中$http.post发送的数据,总是显示为null

示例代码:

$http.post(/admin/KeyValue/GetListByPage,
{
pageindex: 1,
pagesize: 8
})
  .success(function(){
  alert("Mr靖");
  });

代码没有错,但是在后台却接收不到数据,这是为什么呢?

用火狐监控:参数是JSON格式

用谷歌监控:传参方式是request payload

  可以发现传参方式是request payload,参数格式是json,而并非用的是form传参,所以在后台用接收form数据的方式接收参数就接收不到了

  POST表单请求提交时,使用的Content-Type是application/x-www-form-urlencoded,而使用原生AJAX的POST请求如果不指
定请求头RequestHeader,默认使用的Content-Type是text/plain;charset=UTF-8,而此处的Content-Type是:

--------------------------------------------------------------------------------

2.解决方法:

直接上代码:

//要通过post传递的参数
var data = {
pageindex: 1,
pagesize: 8,
},
//post请求的地址
url = "/admin/KeyValue/GetListByPage",
//将参数传递的方式改成form
postCfg = {
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
transformRequest: function (data) {
return $.param(data);
}
};
//发送post请求,获取数据
$http.post(url, data, postCfg)
.success(function (response) {
alert("Mr靖");
}); 

接下来再看监视工具:

火狐监视:参数类型已经变成表单数据

谷歌监视:

现在传参方式就变成form方式了,然后后端就可以正常接收参数了!

以上所述是小编给大家介绍的后端接收不到AngularJs中$http.post发送的数据原因分析及解决办法的相关知识,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索angularjs
http.post发送数据
,以便于您获取更多的相关知识。

时间: 2024-11-03 14:44:49

后端接收不到AngularJs中$http.post发送的数据原因分析及解决办法_AngularJS的相关文章

AngularJS 中使用Swiper制作滚动图不能滑动的解决方法_AngularJS

Swiper是目前较为流行的移动端触摸滑动插件,因为其简单好用易上手,受到很多前端开发者的欢迎. 今天在使用Swiper的时候遇到这个问题: 使用angularjs动态循环生成swiper-slide类,在swiper-wrapper里生成6个以上的滑动页,可是就是划不到第二页,尝试将longSwipesRatio的值修改到最小,仍然不起作用. <div class="swiper-wrapper" > <!-- =======循环部分======= --> &

AngularJS学习笔记(三)数据双向绑定的简单实例_AngularJS

双向绑定 双向绑定是AngularJS最实用的功能,它节省了大量的代码,使我们专注于数据和视图,不用浪费大量的代码在Dom监听.数据同步上,关于双向更新,可看下图: 数据-->视图 这里我们只演示有了数据以后,如何绑定到视图上. <!DOCTYPE html> <html ng-app="App"> <head> <script type="text/javascript" src="http://sandb

AngularJS出现$http异步后台无法获取请求参数问题的解决方法_AngularJS

本文实例讲述了AngularJS出现$http异步后台无法获取请求参数问题的解决方法.分享给大家供大家参考,具体如下: angular在通过异步提交数据时使用了与jQuery不一样的请求头部和数据序列化方式,导致部分后台程序无法正常解析数据. 原理分析(网上的分析): 对于AJAX应用(使用XMLHttpRequests)来说,向服务器发起请求的传统方式是:获取一个XMLHttpRequest对象的引用.发起请求.读取响应.检查状态码,最后处理服务端的响应.整个过程示例如下: var xmlht

图片-ajax发送的数据,后台如何接收并且解析?

问题描述 ajax发送的数据,后台如何接收并且解析? 按照我这么写的话不对,打印出来的也没有地址,只是一个null 如何解析,希望大神们帮帮忙. 解决方案 ajax向后台发送数组数据ajax 获取后台数据显示listajax发送json,后台取得数据 解决方案二: 怎么没看见你的ajax:用data:{"realData":data};后台也要有值去接收,变量名为realData;如果不懂ajax可以参考:http://blog.csdn.net/qq_19558705/article

ios-java 发送的数据使用PHP接收不到

问题描述 java 发送的数据使用PHP接收不到 IOS发送给php的数据可以接收到,java发送的不论是get还是post我都接收不到,是php的问题还是java的问题.求解 解决方案 使用php发送Http请求,抓取网页数据php 使用 curl 发送 post 数据php 使用 curl 发送 post 数据 解决方案二: 估计是你java代码写的不对,检查url,看ios端提交的什么,和你这边对一下 解决方案三: 用fiddler调试下.fiddler可以抓取http报文,可以清楚看到服

原始套接字 tcp-用原始套接字发送TCP数据包,显示发送成功但是接收不到,求教

问题描述 用原始套接字发送TCP数据包,显示发送成功但是接收不到,求教 我需要自己构建IP数据包,在IP选项部分添加一些数据,因此用原始套接字发送TCP数据包,但是发送成功了,另一台主机接收不到,用的2003系统,不知道哪位好心人能帮助下,万分感激,谢谢 解决方案 你这个问题说的比较笼统,你是用的无连接发送吧,发送成功了,但是主机没收到,可能:1.IP包或者TCP包创建的有问题2.发送过程中,数据有丢失3.服务器的程序,在接受数据的程序上存在一些问题 解决方法:1.在客户端断点检测,查看IP和T

IE浏览器因缓存问题未能成功向后端发送请求的几个解决办法

这段时间前后端联调,解决IE.谷歌等浏览器兼容问题,真是让人有点焦头烂额,各种奇葩问题层出不穷,旧问题刚去,新麻烦又来,其中尤其以IE浏览器缓存的问题最多.有若干次都是因为这个缓存,使得前端的请求没有实际到达后台,造成304状态码. 经过前端同事和我的各种尝试,发现有三四种办法可以针对不同的情况解决这个问题. 方法一: 在网上一搜"html设置不缓存"就会看到大部分的答案都是这个,那就是在之前的一篇博文<同前端联调遇到的坑(二)>中也说过的当时没起作用的方法,在html请求

struts-急求使用jquery提交的请求回调函数接收不到后台返回值解决办法

问题描述 急求使用jquery提交的请求回调函数接收不到后台返回值解决办法 $.ajax({ type: "post", url: uri, async:true, data: data, success: function (result) { $("#showrecord").append(result); }, error:function(XMLResponse){ alert("wait a minute"); } }); 后台: Ht

数据传输-C#如何实现从机可以实时接收主机持续发送的数据?

问题描述 C#如何实现从机可以实时接收主机持续发送的数据? 主机一直在重复发送数据,我要实时读取,并从数据中截取控制信号源的命令,我直接用socket读取吗?read()读取的是实时的吗,我如何把这些数据存下来解析?有点乱...求各位大神指点,谢谢 解决方案 数据量不是非常大,用wcf双工通讯就可以,代码简单. 解决方案二: read() 一直读,同时把数据放入一个缓冲区中,然后你解析,获取到对应的数据,从中按规则截取对应的命令等,你还可以写入文件来解析都可以 解决方案三: 异步读取,用正则表达