【发布时间】:2018-04-06 05:24:23
【问题描述】:
我对 Angular 很陌生,在 Angular 5 中开发应用程序。我正在尝试将一些数据发布到 API,下面是我的代码
.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 登录组件
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="";
}
}
我在按钮单击时调用 checkLogIn(),在调用此 API 后,它只到达 API 类的构造函数,但不进入 API 方法。
我检查了我的浏览器网络选项卡,它显示了
415 不支持的媒体类型
当我调用 Get API (values api) 时,它默认出现在 .Net Core Web API 模板中,它可以正常工作并显示警报 OK,但在 POST 的情况下失败
更新 1
【问题讨论】:
-
可以分享一下json示例吗?
-
@SuvethanNantha,什么 json?
-
请求POST的json
-
检查 HttpParams 部分
-
好的,给我几分钟
标签: angular angular5 asp.net-core-webapi