C# 使用AngularJS$http(ionic framework)将数据发布到ASP.NET MVC应用程序
我正在编写一个使用AngularJS的Ionic应用程序,并试图向我的ASP.NET MVC应用程序发送帖子 关于我的客户,我有:C# 使用AngularJS$http(ionic framework)将数据发布到ASP.NET MVC应用程序,c#,asp.net,angularjs,asp.net-mvc,ionic-framework,C#,Asp.net,Angularjs,Asp.net Mvc,Ionic Framework,我正在编写一个使用AngularJS的Ionic应用程序,并试图向我的ASP.NET MVC应用程序发送帖子 关于我的客户,我有: function testPost(url, token) { var deferred = $q.defer(); var params = {'token': token }; $http({ method: 'POST', url: url, data: params, headers: { 'Content-Ty
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中创建一个POST,将token
设置为主体中针对相同操作的值,并查看请求。form
具有token
的值。我尝试过使用标题:{'Content Type':'x-www-form-urlencoded'}
并尝试过使用数据:JSON.stringify(params)
。我不确定谁在这里犯错,我的客户端实现还是服务器实现。非常感谢您的帮助。您发布的数据不是表单数据。它是json请求体。您无法从Request.Form获取此数据。您必须更改客户端代码以发送表单字段,或者将服务器代码更改为接受json数据作为模型的方法
public ActionResult Post(ModelOfData data){//do something with data.}
它与postman一起工作的原因是您使用的是内容类型:表单数据
但是在javascript中,您发送的json请求无效,您发布的数据不是表单数据。它是json请求体。您无法从Request.Form获取此数据。您必须更改客户端代码以发送表单字段,或者将服务器代码更改为接受json数据作为模型的方法
public ActionResult Post(ModelOfData data){//do something with data.}
它与postman一起工作的原因是您使用的是内容类型:表单数据
但是在javascript中,您发送的是json请求,这是行不通的感谢您的澄清。因为这是一个将被发送到许多操作的参数,我想在
OnActionExecuting()
中读取它,所以我现在只看HttpContext.Request.InputStream
而不是Request.Form
看起来您正在尝试使用此令牌进行身份验证。如果您是,那么您应该使用自定义授权过滤器来进行此澄清。因为这是一个将被发送到许多操作的参数,我想在OnActionExecuting()
中读取它,所以我现在只看HttpContext.Request.InputStream
而不是Request.Form
看起来您正在尝试使用此令牌进行身份验证。如果是,则应使用自定义授权筛选器