Ich habe ein Java-Backend-Projekt, das JERSEY und ein ionischen 3-Projekt für das Front-End verwendet. Ich kann die Post-Methode nicht funktionieren, obwohl die get-Methode gut funktioniert.Fehler 415 Nicht unterstützter Medientyp beim Versuch, http.post von einem ionic 3-Projekt zu einem Java-Webservice
dies ist die post-Methode>
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Path("/")
public Response create(Oferta oferta) throws SQLException, ClassNotFoundException{
ofertaDAO dao = new ofertaDAO();
dao.insert(oferta);
return Response
.status(200)
.header("Access-Control-Allow-Origin", "*")
.header("Access-Control-Allow-Headers", "origin, content-type, accept, authorization")
.header("Access-Control-Allow-Credentials", "true")
.header("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS, HEAD")
.header("Access-Control-Max-Age", "1209600")
.entity(oferta)
.build();
}
Ich habe versucht, meine Post-Funktion an meinem ionischen Projekt auf zwei verschiedene Arten zu tun, das:
postData(params){
let headers = new Headers();
headers.append('Content-type','application/json');
return this.http.post(this.api,params,{
headers: headers
}).map(
(res:Response) => {return res.json();}
);
}
Und auf diese Weise>
postData(params){
let headers = new Headers({'Content-type' : 'application/x-www-form-urlencoded'});
return this.http.post(this.api,params,{
headers: headers,
method: 'POST'
}).map(
(res:Response) => {return res.json();}
);
}
Der erste Weg, den ich http 400 Fehler, und die zweite Möglichkeit bekomme ich 415 Fehler. Was fehlt mir hier?
Ja, du hattest recht, du musstest die ngModel-Namen wie die oferta-Eigenschaften einstellen, funktioniert jetzt gut! ty –