1
我正在编写一个使用AngularJS的Ionic应用程序,并且正在尝试将POST发送到我的ASP.NET MVC应用程序。
在我的客户,我有:
function testPost(url, token) {
var deferred = $q.defer();
var params = {'token': token };
$http({
method: 'POST',
url: url,
data: params,
headers: { 'Content-Type': 'application/json' }
})
.success(function (data, status, headers, config) {
deferred.resolve(data);
}).error(function(data, status, headers, config) {
deferred.reject(data);
});
return deferred.promise;
}
在我的服务器我有:
protected override void OnActionExecuting(ActionExecutingContext ctx)
{
base.OnActionExecuting(ctx);
string token = (string)Request.Form["token"];
}
但调试我的服务器代码时,Request.Form
没有元素。我可以在Postman中以token
的形式设置一个POST,该值设置为主体中的相同动作,并看到Request.Form
的值为token
。我曾尝试使用headers: { 'Content-Type': 'x-www-form-urlencoded' }
,并试图做data: JSON.stringify(params)
。我不确定谁在这里犯错,我的客户端实现或服务器实现。任何帮助将不胜感激。
感谢您使这一澄清。因为这是一个将被发送到许多操作的参数,所以我想在'OnActionExecuting()'中读取它,所以现在我只是看着'HttpContext.Request.InputStream'而不是'Request.Form'。 – jafant
看起来像你正尝试使用此令牌进行身份验证。如果你是那么你应该使用自定义授权过滤器 – Gurpreet