Winkel-5 Post-API-Aufruf
Ich bin sehr neu, um eine Winkel -, eine app zu Entwickeln, die in Winkel-5 . Ich bin versucht, post-Daten an eine API , unten ist mein 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));
}
}
Winkel-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="";
}
}
Bin ich aufrufen checkLogIn() auf den button klicken , nach dem Aufruf dieser API, die es zu erreichen Konstruktor der API-Klasse nur, aber er geht nicht innerhalb von API-Methode.
Ich habe meine browser-Registerkarte Netzwerk, und es zeigen
415 Unsupported Media Type
Wenn ich das aufrufen der Get-API (values api), die standardmäßig kommt .Net-Core-Web-API-Vorlage als es funktioniert und zeigen, Warnung, OK, scheiterte aber im Fall von POST
Update 1
- kannst du die Beispiel-json?
- was ist json ?
- Anfrage json-von der POST
- Überprüfen Sie den Abschnitt HttpParams
- Okay, gib mir paar Minuten
- Überprüfen Sie die Antwort, die ich zur Verfügung gestellt
- Entweder 1. auf Ihrer web-api benutzen [FromForm] anstelle von [FromBody]. Oder 2. auf Ihre kantigen Seite, legen Sie Content-Type: application/json. Siehe stackoverflow.com/questions/44538772/...
- fühlt sich an wie Sie nicht aktivieren CORS auf Ihrem web-api-Seite. Stellen Sie sicher, dass CORS aktiviert und erlaubt, alle Header, die Sie in Ihren Anträgen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Scheint, wie Sie erwähnt haben, von application/json-web-API als Produziert("application/json") aber nicht übergeben, es im header aus der Win-code.
Versuchen, diese
wenn nicht ändern können, die web-api ändern Sie dann eckig-code, wie unten abgebildet, und halten Sie das web-api, wie es ist.
Winkel
wenn Sie ändern, können web-api,
Winkel
web-api-controller
Ich denke, dass Sie noch nicht aktiviert die Cors-Moduls in Ihrem web-api. fügen Sie den folgenden code zu starten.cs von Ihrem web-api.
Wenn Sie nicht installieren Sie die CORS nuget-Paket
Fügen Sie den code in ConfigureServices Methode.
Nun in der Configure-Methode fügen Sie den folgenden code vor app.UseMvc().
Ich hoffe, dies wird dein problem lösen. Wenn Sie irgendwelche Probleme oder Zweifel, lassen Sie es mich wissen.
Fehler
415 Unsupported media type
Sagen, dass der Wert des request-headercontent-type
nicht, was der server erwartet in der Anfrage. Versuchen Sie, content-type-header mit dem Wert application/json, in eckig.Content-type scheint falsch zu sein. Sie können versuchen, das senden ein JSON-Objekt als payload direkt.
`
Sind Sie vor COARS Fehler problem sehr berühmt
als u-aufrufen von anderen Prozessen verknüpfen schlagen so bewirkt, dont panic
Tun
webapiconfig.cs
fügen Sie nun folgenden code ovverride