angularJsPost数据到ashx后台获取不到

yaotomo 2017-01-16 02:47:08
刚刚学ng,做一个登录的小案例,就遇到了问题
按网上说的修改了一下Content-Type,还是不行

var app = angular.module("loginApp", [], function($httpProvider){
$httpProvider.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=utf-8';
})
.controller("loginController", ["$scope", "$http", function ($scope, $http) {
$scope.login = function () {
$http({
method : "POST",
url : "../handlers/LoginHandler.ashx",
type : "JSON",
data : { username : $scope.data.username , password : $scope.data.password }
}).then(function successCallback(data){
console.log(data);
},function errorCallback(){

});
}
} ]);


下面是后台ashx断点截获的用户名和密码,为空

下面是使用开发者工具看到的请求参数

...全文
189 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
yaotomo 2017-01-16
  • 打赏
  • 举报
回复
引用 13 楼 lnxmxy 的回复:
context.Request.Params["xxx"]; context.Request.Form["xxx"]; 使用这两种获取post数据
context.Request.Params["xxx"]; 我之前试过 context.Request.Form是表单提交用的,我这个是ajax提交,没有用form
lnxmxy 2017-01-16
  • 打赏
  • 举报
回复
context.Request.Params["xxx"]; context.Request.Form["xxx"]; 使用这两种获取post数据
yaotomo 2017-01-16
  • 打赏
  • 举报
回复
引用 11 楼 Chinajiyong 的回复:
看这篇文章http://www.2cto.com/kf/201506/405137.html


谢谢指点

③params(字符串map或者对象)
这个键的值是一个字符串map或对象,会被转换成查询字符串追加在URL后面。如果值不是字符串,会被JSON序列化。

测试了一下,虽然是POST请求,但是参数会转为?name=ari的形式,这对安全性会有影响吗
EnForGrass 2017-01-16
  • 打赏
  • 举报
回复
看这篇文章http://www.2cto.com/kf/201506/405137.html
yaotomo 2017-01-16
  • 打赏
  • 举报
回复
引用 9 楼 Chinajiyong 的回复:
data : { username : $scope.data.username , password : $scope.data.password }
==》
params: { username : $scope.data.username , password : $scope.data.password }

这样呢


可以了,而且不需要修改content-type
但是网上都是说用data,和params有什么区别?
EnForGrass 2017-01-16
  • 打赏
  • 举报
回复
data : { username : $scope.data.username , password : $scope.data.password } ==》 params: { username : $scope.data.username , password : $scope.data.password } 这样呢
yaotomo 2017-01-16
  • 打赏
  • 举报
回复
引用 7 楼 Chinajiyong 的回复:
因为后台是用Request,直接用下面方式呢 '../handlers/LoginHandler.ashx?username='+$scope.data.username
querystring是没有问题的,但是这样太不安全
EnForGrass 2017-01-16
  • 打赏
  • 举报
回复
因为后台是用Request,直接用下面方式呢 '../handlers/LoginHandler.ashx?username='+$scope.data.username
yaotomo 2017-01-16
  • 打赏
  • 举报
回复
引用 5 楼 Chinajiyong 的回复:
不要type : "JSON",试试
又试了不行 事实上,就是原来没加这个不行才加上的
EnForGrass 2017-01-16
  • 打赏
  • 举报
回复
不要type : "JSON",试试
yaotomo 2017-01-16
  • 打赏
  • 举报
回复
引用 3 楼 Chinajiyong 的回复:
$scope.data打印出来看有值没有?
或者先写死(一个固定值),看能不能传过去


我以前打印过,是有值的


写成固定值还是不行
怀疑还是content-type的问题
EnForGrass 2017-01-16
  • 打赏
  • 举报
回复
$scope.data打印出来看有值没有? 或者先写死(一个固定值),看能不能传过去
yaotomo 2017-01-16
  • 打赏
  • 举报
回复
引用 1 楼 Chinajiyong 的回复:
content-type 设置成application/json

angular.module("loginApp", [], function($httpProvider){
      $httpProvider.defaults.headers.post['Content-Type'] = 'application/json';
   })
不行呀
EnForGrass 2017-01-16
  • 打赏
  • 举报
回复
content-type 设置成application/json

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧