如何接收和处理 AngularJS HTTP POST 到 C#?
How to recieve and process AngularJS HTTP POST to C#?
我正在开发一个与 SQL 数据库和 Azure 网络应用相关联的网站。该应用程序支持身份验证。现在,我可以使用 Owin OAuthAuthorizationServerProvider class.
登录用户
这是我用来 POST 从我的 Angularjs 文件中登录数据的代码:
fac.login = function (user) {
var obj = {
'username': user.username, 'password': user.password,
'grant_type': 'password'
};
Object.toparams = function ObjectsToParams(obj)
{
var p = [];
for (var key in obj)
{
p.push(key + '=' + encodeURIComponent(obj[key]));
}
return p.join('&');
}
var defer = $q.defer();
$http({
method: 'post',
url: serviceBasePath + "/token",
data: Object.toparams(obj),
headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
}).then(function (response) {
userService.SetCurrentUser(response.data);
defer.resolve(response.data);
}, function (error) {
defer.reject(error.data);
})
return defer.promise;
}
我通过覆盖处理数据和身份:任务 GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext 上下文)。
这非常有效。我现在正在尝试基于相同的结构创建一个 "Sign In" 页面。
我想我知道如何 post 像这样 AngularJS 的数据:
fac.suscribe = function (newUser) {
var obj = {
'username': newUser.username, 'surname': newUser.surname, 'firstname': newUser.firstname,
'password1': newUser.password1, 'password2': newUser.password2, 'email': newUser.email, 'guid': newUser.guid
};
Object.toparams = function ObjectsToParams(obj) {
var p = [];
for (var key in obj) {
p.push(key + '=' + encodeURIComponent(obj[key]));
}
return p.join('&');
}
var defer = $q.defer();
$http({
method: 'post',
url: serviceBasePath + "/register",
data: Object.toparams(obj),
headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
}).then(function (response){
userService.SetCurrentUser(response.data);
defer.resolve(response.data);
}, function (error) {
defer.reject(error.data);
})
return defer.promise;
}
但我想知道如何获取数据以生成 post 答案。关于 C# 的任何想法,最好是?
首先,您应该在服务器端使用相同的 属性 名称的模型。因此,您在 object 中从 angularjs 发送的 属性 将绑定到模型属性。而不是 headers: { 'Content-Type': 'application/x-www-form-urlencoded' },将其更改为 headers: { 'Content-Type':'application/json'} 网络 API。
为了您的参考,我分享了这个link
CRUD WITH ANGULARJS and ASP.NET WEB API
我正在开发一个与 SQL 数据库和 Azure 网络应用相关联的网站。该应用程序支持身份验证。现在,我可以使用 Owin OAuthAuthorizationServerProvider class.
登录用户这是我用来 POST 从我的 Angularjs 文件中登录数据的代码:
fac.login = function (user) {
var obj = {
'username': user.username, 'password': user.password,
'grant_type': 'password'
};
Object.toparams = function ObjectsToParams(obj)
{
var p = [];
for (var key in obj)
{
p.push(key + '=' + encodeURIComponent(obj[key]));
}
return p.join('&');
}
var defer = $q.defer();
$http({
method: 'post',
url: serviceBasePath + "/token",
data: Object.toparams(obj),
headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
}).then(function (response) {
userService.SetCurrentUser(response.data);
defer.resolve(response.data);
}, function (error) {
defer.reject(error.data);
})
return defer.promise;
}
我通过覆盖处理数据和身份:任务 GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext 上下文)。
这非常有效。我现在正在尝试基于相同的结构创建一个 "Sign In" 页面。
我想我知道如何 post 像这样 AngularJS 的数据:
fac.suscribe = function (newUser) {
var obj = {
'username': newUser.username, 'surname': newUser.surname, 'firstname': newUser.firstname,
'password1': newUser.password1, 'password2': newUser.password2, 'email': newUser.email, 'guid': newUser.guid
};
Object.toparams = function ObjectsToParams(obj) {
var p = [];
for (var key in obj) {
p.push(key + '=' + encodeURIComponent(obj[key]));
}
return p.join('&');
}
var defer = $q.defer();
$http({
method: 'post',
url: serviceBasePath + "/register",
data: Object.toparams(obj),
headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
}).then(function (response){
userService.SetCurrentUser(response.data);
defer.resolve(response.data);
}, function (error) {
defer.reject(error.data);
})
return defer.promise;
}
但我想知道如何获取数据以生成 post 答案。关于 C# 的任何想法,最好是?
首先,您应该在服务器端使用相同的 属性 名称的模型。因此,您在 object 中从 angularjs 发送的 属性 将绑定到模型属性。而不是 headers: { 'Content-Type': 'application/x-www-form-urlencoded' },将其更改为 headers: { 'Content-Type':'application/json'} 网络 API。
为了您的参考,我分享了这个link CRUD WITH ANGULARJS and ASP.NET WEB API