Angular post request to c# web api 2 RESTful web service
I'm trying to send a http post request from angular client to C# web API 2 RESTful web service.
My client:
var userId = "123456";
var password = "654321";
const headersContent = new Headers().set('Content-Type', 'application/x-www-form-urlencoded');
var url = "http://localhost:35615/login"
this.http.post(url, {
"userId": userId,
"password": password
}, {withCredentials: true}).subscribe(res => {
console.log(res);
});
My Server:
[Route("login")]
[HttpPost]
public IHttpActionResult LoginReq([FromBody] string parameters)
{
//Deserialize the parameters.
}
My problem is the parameters var is null although the post request in the network tab in chrome includes the data.
Can someone explain me what I'm doing wrong and how can I fix it?
Thank you!
c# angular rest http asp.net-web-api2
add a comment |
I'm trying to send a http post request from angular client to C# web API 2 RESTful web service.
My client:
var userId = "123456";
var password = "654321";
const headersContent = new Headers().set('Content-Type', 'application/x-www-form-urlencoded');
var url = "http://localhost:35615/login"
this.http.post(url, {
"userId": userId,
"password": password
}, {withCredentials: true}).subscribe(res => {
console.log(res);
});
My Server:
[Route("login")]
[HttpPost]
public IHttpActionResult LoginReq([FromBody] string parameters)
{
//Deserialize the parameters.
}
My problem is the parameters var is null although the post request in the network tab in chrome includes the data.
Can someone explain me what I'm doing wrong and how can I fix it?
Thank you!
c# angular rest http asp.net-web-api2
add a comment |
I'm trying to send a http post request from angular client to C# web API 2 RESTful web service.
My client:
var userId = "123456";
var password = "654321";
const headersContent = new Headers().set('Content-Type', 'application/x-www-form-urlencoded');
var url = "http://localhost:35615/login"
this.http.post(url, {
"userId": userId,
"password": password
}, {withCredentials: true}).subscribe(res => {
console.log(res);
});
My Server:
[Route("login")]
[HttpPost]
public IHttpActionResult LoginReq([FromBody] string parameters)
{
//Deserialize the parameters.
}
My problem is the parameters var is null although the post request in the network tab in chrome includes the data.
Can someone explain me what I'm doing wrong and how can I fix it?
Thank you!
c# angular rest http asp.net-web-api2
I'm trying to send a http post request from angular client to C# web API 2 RESTful web service.
My client:
var userId = "123456";
var password = "654321";
const headersContent = new Headers().set('Content-Type', 'application/x-www-form-urlencoded');
var url = "http://localhost:35615/login"
this.http.post(url, {
"userId": userId,
"password": password
}, {withCredentials: true}).subscribe(res => {
console.log(res);
});
My Server:
[Route("login")]
[HttpPost]
public IHttpActionResult LoginReq([FromBody] string parameters)
{
//Deserialize the parameters.
}
My problem is the parameters var is null although the post request in the network tab in chrome includes the data.
Can someone explain me what I'm doing wrong and how can I fix it?
Thank you!
c# angular rest http asp.net-web-api2
c# angular rest http asp.net-web-api2
asked Nov 7 at 13:04
KonRow
206
206
add a comment |
add a comment |
4 Answers
4
active
oldest
votes
You are passing an anonymous object with properties "UserId" and "Password".
Make a Data Contract class which has those 2 properties as strings and use it in the parameters of your REST method.
public IHttpActionResult LoginReq([FromBody] User user) { ... }
add a comment |
If you are passing an object from your Angular POST request the Web API POST method can be changed to accept an User defined type as parameter to read it from the request body.
You can create the below user defined type in C# to bind UserId and Password properties from your angular Post request
public class UserLogin
{
public int UserId { get; set; }
public string Password { get; set; }
}
[Route("login")]
[HttpPost]
public IHttpActionResult LoginReq([FromBody] UserLogin user)
{
//Deserialize the parameters.
}
I would recommend going through this documentation to read more about parameter binding in Web API. Believe me its worth your time.
add a comment |
You post userId
and password
, but expect String parameters
. Change to String userId
, String password
. The Modelbinder only will bind matching properties.
Tried to do it like this LoginReq([FromBody] string userId, [FromBody] string password) - same result, the parameters are null
– KonRow
Nov 7 at 13:10
try parameter=value without qoutes in the post, so userId:userId, password:password
– Cookinski
Nov 7 at 13:13
add a comment |
Just add JSON.stringify()
you are sending an object to the server which expects only a string as a parameter so make it as a string and pass the value otherwise create a model with userid
and password
in your server side and mention that object
let obj = {
"userId": userId,
"password": password
};
this.http.post(url, JSON.stringify(obj), {withCredentials: true}).subscribe(res => {
console.log(res);
});
The above code will work with the string parameters
- Going forward try to use model and pass the object from Angular
Happy Coding !!
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53190029%2fangular-post-request-to-c-sharp-web-api-2-restful-web-service%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
4 Answers
4
active
oldest
votes
4 Answers
4
active
oldest
votes
active
oldest
votes
active
oldest
votes
You are passing an anonymous object with properties "UserId" and "Password".
Make a Data Contract class which has those 2 properties as strings and use it in the parameters of your REST method.
public IHttpActionResult LoginReq([FromBody] User user) { ... }
add a comment |
You are passing an anonymous object with properties "UserId" and "Password".
Make a Data Contract class which has those 2 properties as strings and use it in the parameters of your REST method.
public IHttpActionResult LoginReq([FromBody] User user) { ... }
add a comment |
You are passing an anonymous object with properties "UserId" and "Password".
Make a Data Contract class which has those 2 properties as strings and use it in the parameters of your REST method.
public IHttpActionResult LoginReq([FromBody] User user) { ... }
You are passing an anonymous object with properties "UserId" and "Password".
Make a Data Contract class which has those 2 properties as strings and use it in the parameters of your REST method.
public IHttpActionResult LoginReq([FromBody] User user) { ... }
edited Nov 12 at 12:30
answered Nov 7 at 13:21
Julian Peil
657
657
add a comment |
add a comment |
If you are passing an object from your Angular POST request the Web API POST method can be changed to accept an User defined type as parameter to read it from the request body.
You can create the below user defined type in C# to bind UserId and Password properties from your angular Post request
public class UserLogin
{
public int UserId { get; set; }
public string Password { get; set; }
}
[Route("login")]
[HttpPost]
public IHttpActionResult LoginReq([FromBody] UserLogin user)
{
//Deserialize the parameters.
}
I would recommend going through this documentation to read more about parameter binding in Web API. Believe me its worth your time.
add a comment |
If you are passing an object from your Angular POST request the Web API POST method can be changed to accept an User defined type as parameter to read it from the request body.
You can create the below user defined type in C# to bind UserId and Password properties from your angular Post request
public class UserLogin
{
public int UserId { get; set; }
public string Password { get; set; }
}
[Route("login")]
[HttpPost]
public IHttpActionResult LoginReq([FromBody] UserLogin user)
{
//Deserialize the parameters.
}
I would recommend going through this documentation to read more about parameter binding in Web API. Believe me its worth your time.
add a comment |
If you are passing an object from your Angular POST request the Web API POST method can be changed to accept an User defined type as parameter to read it from the request body.
You can create the below user defined type in C# to bind UserId and Password properties from your angular Post request
public class UserLogin
{
public int UserId { get; set; }
public string Password { get; set; }
}
[Route("login")]
[HttpPost]
public IHttpActionResult LoginReq([FromBody] UserLogin user)
{
//Deserialize the parameters.
}
I would recommend going through this documentation to read more about parameter binding in Web API. Believe me its worth your time.
If you are passing an object from your Angular POST request the Web API POST method can be changed to accept an User defined type as parameter to read it from the request body.
You can create the below user defined type in C# to bind UserId and Password properties from your angular Post request
public class UserLogin
{
public int UserId { get; set; }
public string Password { get; set; }
}
[Route("login")]
[HttpPost]
public IHttpActionResult LoginReq([FromBody] UserLogin user)
{
//Deserialize the parameters.
}
I would recommend going through this documentation to read more about parameter binding in Web API. Believe me its worth your time.
answered Nov 7 at 15:53
Karthik
315
315
add a comment |
add a comment |
You post userId
and password
, but expect String parameters
. Change to String userId
, String password
. The Modelbinder only will bind matching properties.
Tried to do it like this LoginReq([FromBody] string userId, [FromBody] string password) - same result, the parameters are null
– KonRow
Nov 7 at 13:10
try parameter=value without qoutes in the post, so userId:userId, password:password
– Cookinski
Nov 7 at 13:13
add a comment |
You post userId
and password
, but expect String parameters
. Change to String userId
, String password
. The Modelbinder only will bind matching properties.
Tried to do it like this LoginReq([FromBody] string userId, [FromBody] string password) - same result, the parameters are null
– KonRow
Nov 7 at 13:10
try parameter=value without qoutes in the post, so userId:userId, password:password
– Cookinski
Nov 7 at 13:13
add a comment |
You post userId
and password
, but expect String parameters
. Change to String userId
, String password
. The Modelbinder only will bind matching properties.
You post userId
and password
, but expect String parameters
. Change to String userId
, String password
. The Modelbinder only will bind matching properties.
answered Nov 7 at 13:07
Cookinski
1135
1135
Tried to do it like this LoginReq([FromBody] string userId, [FromBody] string password) - same result, the parameters are null
– KonRow
Nov 7 at 13:10
try parameter=value without qoutes in the post, so userId:userId, password:password
– Cookinski
Nov 7 at 13:13
add a comment |
Tried to do it like this LoginReq([FromBody] string userId, [FromBody] string password) - same result, the parameters are null
– KonRow
Nov 7 at 13:10
try parameter=value without qoutes in the post, so userId:userId, password:password
– Cookinski
Nov 7 at 13:13
Tried to do it like this LoginReq([FromBody] string userId, [FromBody] string password) - same result, the parameters are null
– KonRow
Nov 7 at 13:10
Tried to do it like this LoginReq([FromBody] string userId, [FromBody] string password) - same result, the parameters are null
– KonRow
Nov 7 at 13:10
try parameter=value without qoutes in the post, so userId:userId, password:password
– Cookinski
Nov 7 at 13:13
try parameter=value without qoutes in the post, so userId:userId, password:password
– Cookinski
Nov 7 at 13:13
add a comment |
Just add JSON.stringify()
you are sending an object to the server which expects only a string as a parameter so make it as a string and pass the value otherwise create a model with userid
and password
in your server side and mention that object
let obj = {
"userId": userId,
"password": password
};
this.http.post(url, JSON.stringify(obj), {withCredentials: true}).subscribe(res => {
console.log(res);
});
The above code will work with the string parameters
- Going forward try to use model and pass the object from Angular
Happy Coding !!
add a comment |
Just add JSON.stringify()
you are sending an object to the server which expects only a string as a parameter so make it as a string and pass the value otherwise create a model with userid
and password
in your server side and mention that object
let obj = {
"userId": userId,
"password": password
};
this.http.post(url, JSON.stringify(obj), {withCredentials: true}).subscribe(res => {
console.log(res);
});
The above code will work with the string parameters
- Going forward try to use model and pass the object from Angular
Happy Coding !!
add a comment |
Just add JSON.stringify()
you are sending an object to the server which expects only a string as a parameter so make it as a string and pass the value otherwise create a model with userid
and password
in your server side and mention that object
let obj = {
"userId": userId,
"password": password
};
this.http.post(url, JSON.stringify(obj), {withCredentials: true}).subscribe(res => {
console.log(res);
});
The above code will work with the string parameters
- Going forward try to use model and pass the object from Angular
Happy Coding !!
Just add JSON.stringify()
you are sending an object to the server which expects only a string as a parameter so make it as a string and pass the value otherwise create a model with userid
and password
in your server side and mention that object
let obj = {
"userId": userId,
"password": password
};
this.http.post(url, JSON.stringify(obj), {withCredentials: true}).subscribe(res => {
console.log(res);
});
The above code will work with the string parameters
- Going forward try to use model and pass the object from Angular
Happy Coding !!
answered Nov 7 at 13:34
Rahul
9631315
9631315
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53190029%2fangular-post-request-to-c-sharp-web-api-2-restful-web-service%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown