我的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方法,但无论我怎么做,它总是会返回如下错误: {"'对象'不包含'用户名'"}
的定义知道我做错了什么吗?
答案 0 :(得分:0)
我不了解ASP.net,但似乎您通过" x-www-form-urlencoded发送JSON数据;"请求。
您应该更改数据:...'如果你想使用JSON,请使用
'用户名=,密码=',或'Content-Type': 'application/json'
如果网络服务器不错,它应检测您的内容类型并将其解释为JSON,而不是寻找" form"数据
还要考虑使用 curl 等工具(或允许您发送任意HTTP请求的任何网络服务)来测试和了解正在发生的事情。