I am very new to Angular , Developing an app in Angular 5 . I am trying to post some data to an API , below is my code
.Net Core Web API
[Produces("application/json")]
[Route("api/Audit")]
public class AuditController : Controller
{
private IConfiguration _configuration;
private CommomUtility util;
private Login Login;
public AuditController(IConfiguration configuration)
{
_configuration = configuration;
util = new CommomUtility(configuration);
Login = new Login(configuration);
}
[HttpPost]
public JsonResult Action([FromBody] List<Dictionary<string, string>> li)
{
DataTable dt = new DataTable();
string jsonString = string.Empty;
try
{
if (li[0]["ActionMethod"].Equals("CheckLogin", StringComparison.InvariantCultureIgnoreCase))
{
dt = Login.checkLogin(li);
}
}
catch (Exception ex)
{
}
finally
{
dt.TableName = "Result";
jsonString = util.DataTableToJson(dt);
}
return Json(JObject.Parse(jsonString));
}
}
Angular Login Componenet
import { Component, OnInit } from '@angular/core';
import { HttpClient,HttpClientModule,HttpParams,HttpHeaders } from '@angular/common/http';
@Component({
selector: 'app-login',
templateUrl: './login.component.html',
styleUrls: ['./login.component.css']
})
export class LoginComponent implements OnInit {
username: string="";
password: string="";
loginBtnText: string='Log In';
clearBtnText: string='Reset Fields';
message:string;
cssClass:string;
constructor(private http:HttpClient ) { }
ngOnInit() {
}
checkLogIn(){
const params = new HttpParams();
params.set('ActionMethod', 'CheckLogin');
params.set('StaffCode', '15989');
params.set('Password', '#####');
var queryHeaders = new HttpHeaders();
queryHeaders.append('Content-Type', 'application/json');
debugger
var v= this.http.post("http://localhost:57863/api/Audit/",
params,{ headers: queryHeaders}
)
.subscribe(data =>
{alert('ok');},
error =>
{alert("Error");}
);
}
clearFields(){
this.username="";
this.password="";
this.message="";
}
}
I am invoking checkLogIn() on button click , after invoking this API it reach to constructor of API class only but does not go inside API Method.
I checked my browser Network tab and it show
415 Unsupported Media Type
When I invoking the Get API (values api) which is by default comes in .Net Core Web API template than it works and show alert OK but failed in case of POST
Update 1