AngularJs使用动态属性

时间:2015-11-12 22:01:01

标签: javascript angularjs asp.net-mvc asp.net-web-api

我的webApi控制器代码如下所示:

 [HttpPost]
        public int ValidateUser([FromBody]dynamic credentials)
        {
            try
            {
                string username = credentials.username;
                string password = credentials.password;
                //do stuff
                }
            }
            catch (Exception ex)
            {
                throw ex;
                return -1;
            }

            return -1; // not valid user
        }

我的角度服务看起来像这样:

 getAuthorizationStatus: function () {
                    var deferred = $q.defer();
                    $http({
                        method: "POST",
                        url: url,
                        data: {
                            'username': applicationConstants.userName,
                            'password': applicationConstants.userPass
                        },
                        headers: {
                        'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
                    }
                    }).success(deferred.resolve)
                      .error(deferred.reject);
                    return deferred.promise;
                },

我能够访问webApi方法,但无论我怎么做,它总是会返回如下错误: {"'对象'不包含'用户名'"}

的定义

知道我做错了什么吗?

1 个答案:

答案 0 :(得分:0)

我不了解ASP.net,但似乎您通过" x-www-form-urlencoded发送JSON数据;"请求。

您应该更改数据:...'如果你想使用JSON,请使用

'用户名=,密码=',
'Content-Type': 'application/json'

如果网络服务器不错,它应检测您的内容类型并将其解释为JSON,而不是寻找" form"数据

还要考虑使用 curl 等工具(或允许您发送任意HTTP请求的任何网络服务)来测试和了解正在发生的事情。