4 messaggi dal 14 giugno 2016
Buongiorno Stefano, sto sviluppando una applicazione in Angular 2 e .NetCore. Ho un problema con una chiamata POST, in quanto dal server ricevo un errore relativamente al MediaType non riconosciuto; di seguito il codice:
Angular 2
<code>
login(_utenteDTO: UtenteDTO): Promise<UtenteDTO> {
let body = JSON.stringify(_utenteDTO);
let headers = new Headers({ 'Content-Type': 'application/json' });
let options = new RequestOptions({ headers: headers });
console.log("Headers: " + headers.keys() + " " + headers.values());
return this._http.post(this.dashboardUrl, body, options)
.toPromise()
.then(response => response.json().data as UtenteDTO);
}
</code>

Controller WS RestFul C#
<code>
[HttpPost]
public IActionResult login2([FromBody] UtenteDTO utenteDTO)
{
if(utenteDTO!=null && utenteDTO.username != null)
{
if (!utenteDTO.username.Equals("admin"))
{
return NotFound();
}

UtenteDTO utenteDTOResult = dashboardRepository.login(utenteDTO.username, utenteDTO.password);

return new ObjectResult(utenteDTOResult);
}

return NotFound();

}
</code>

L'errore restituito dal server è: "Response for preflight has invalid HTTP status code 415" e la request che arriva al server non è in POST ma in OPTIONS.
L'errore prodotto sembra dovuto al fatto che non arriva al server il Content Type.
Ti ringrazio per il supporto.
Mario
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao Mario,
penso che il problema sia dovuto al fatto che non hai abilitato CORS nell'applicazione ASP.NET Core. Infatti, se hai pubblicato le due applicazioni ( Angular2 e ASP.NET Core) su due nomi host diversi (basta che sia diverso il nome a dominio, la porta o il protocollo), allora il browser effettuerà una richiesta preliminare (la OPTIONS che hai osservato) per farsi dire dal server se quel client è autorizzato ad inviare richieste ajax. Leggi la documentazione per capire cos'è CORS e come abilitarlo.
https://docs.asp.net/en/latest/security/cors.html

Enjoy learning and just keep making
4 messaggi dal 14 giugno 2016
Ciao Moreno,
ti ringrazio moltissimo per il tuo prezioso supporto. Ho configurato adeguatamente il CORS e ho risolto il problema.

Saluti
Mario

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.