AngularJs后台获取前台传来的参数

yaotomo 2016-07-09 09:19:36
以前一直用jquery,前台post后台request就可以了
但现在用angularjs,后台无法request到前台传来的参数
网上查了一下,说要修改config就可以像jquery一样request了。我没有试这个方法,如果这种方法有效,难道每个页面都要修改吗?有没有其他的办法?
如果不修改angularjs,又应该怎么在后台获取参数呢?
小弟新手,请大神指点。
...全文
6537 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
nihaoye000 2018-03-08
  • 打赏
  • 举报
回复
angular 的post是以json的方式提交数据的,跟jquery的post或者传统的表单提交有所区别。建议后台能够改一下,因为这种方式传复杂的json或者数组挺好用的。
固执。 2017-10-23
  • 打赏
  • 举报
回复
要加这个 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("&"); }
yaotomo 2016-07-12
  • 打赏
  • 举报
回复
引用 7 楼 u012239465 的回复:
angularjs 中封装了$http 你也可以直接用ajax都可以的
我把post改成了get结果正常了,在jQuery里post也是可以的,这是怎么回事? 我知道获取数据最好用get,但是经常用post习惯了。。。
木头海上漂 2016-07-12
  • 打赏
  • 举报
回复
angularjs 中封装了$http 你也可以直接用ajax都可以的
yaotomo 2016-07-12
  • 打赏
  • 举报
回复
js代码

    <script type="text/javascript">
        (function (window) {
            angular.module('myApp', [])
              .controller('myController', ['$scope', '$http', function ($scope, $http) {
                  var url = "../handler/LoginHandler.ashx";
                  $scope.queryUser = function () {
                      $scope.username = angular.element('#txtUsername').val();
                      $scope.factory = angular.element('#txtFactory').val();
                      console.log($scope.username + $scope.factory);  //可以获取到值
                      $http.post(url,
                          { params: { username: $scope.username, factory: $scope.factory } }
                      ).success(function (response) {
                          $scope.users = response;
                      });
                  }
               }]);
        })(window);
    </script>
后台代码

string username = context.Request["username"] ?? "";  //截获断点查看 context.Request["username"] 值为null
string factory = context.Request["factory"] ?? "";
还是不行啊,问题到底出在哪?
bigbird_561 2016-07-11
  • 打赏
  • 举报
回复

//这个是标准的格式
$http.post(url, {params: {xx:xx}}).success(function(response){

});
richard_1015 2016-07-09
  • 打赏
  • 举报
回复
哥哥给你解决,so easy

 $http.post("/SpecialActivity/SetXml",
            {
                xml: JSON.stringify(data)
            }).success(function (custs) {
                if (custs.toLowerCase() === "true")
                    alert('保存成功!');
                else
                    alert("失败!文件未保存");
            }).error(function (error) {
                alert(error.message);
            });
yaotomo 2016-07-09
  • 打赏
  • 举报
回复
这是前台显示html

    <div ng-controller="myController">
        用户名:<input type="text"  id="txtUsername" value="{{username}}"/>
        工厂:<input type="text" id="txtFactory"  value="{{factory}}" />
        <input type="button" value="查询" ng-click="queryUser()"/>
        <table>
            <tr><th>用户ID</th><th>角色ID</th><th>口令</th><th>工厂</th><th>创建者</th></tr>
            <tr ng-repeat="user in users">
                <td>{{ user.USERID }}</td>
                <td>{{ user.ROLEID }}</td>
                <td>{{ user.PASSWORD }}</td>
                <td>{{ user.FACTORYID }}</td>
                <td>{{ user.MASTER }}</td>
            </tr>
        </table>
    </div>
这是js代码

        (function (window) {
            angular.module('myApp', [])
              .controller('myController', ['$scope', '$http', function ($scope, $http) {
                  var url = "../handler/LoginHandler.ashx";
                  $scope.queryUser = function () {
                      $scope.username = angular.element('#txtUsername').val();
                      $scope.factory = angular.element('#txtFactory').val();
                      console.log($scope.username +$scope.factory);
                     //console.log是有值的
                  }                
                  $http.post(url).success(function (response) {          
                      $scope.users = response;
                  });
               }]);
        })(window);
这是后台处理代码

            //这里取不到值
            string username = context.Request["username"] ?? "";
            string factory = context.Request["factory"] ?? "";
楠小南 2016-07-09
  • 打赏
  • 举报
回复
没图没真相。 $http 试试用post 提交吧。

这货跟jq 差不多的。只是参数有点不同。
yaotomo 2016-07-09
  • 打赏
  • 举报
回复
引用 3 楼 u011978868 的回复:
哥哥给你解决,so easy

 $http.post("/SpecialActivity/SetXml",
我用下面的代码不管用,今天早上复制的代码是不按条件查询的,不用传参,弄错了

                      $http.post(url, 
                          { username: $scope.username, factory: $scope.factory }
                      ).success(function (response) {
                          $scope.users = response;
                      });

87,997

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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