私のジャージーを使用してSQLメソッドを処理する単純なJava Webサービスがあります。http呼び出しは角度のあるプロジェクトから取得しています。 HTTP 405エラーが表示されます。Webサービスから削除しようとしたときにHTTP 405のエラーが発生しました
は、これは私が角度
deletaDados(id){
this.service.deleteData(id)
}
+
deleteData(id){
return this.http.delete(`${this.api}/${id}`).subscribe((res) => {
});;
}
でメソッドを呼び出す方法であり、これは
@DELETE
@Path("{id}/")
public Response delete(@PathParam("id") long id) throws SQLException, ClassNotFoundException{
ofertaDAO dao = new ofertaDAO();
dao.delete(id);
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(id)
.build();
}
は思える削除Javaメソッドです...全く分からない理由私は405エラーを取得しています。
申し訳ありませんが、私は何をしなければならない、私の応答が200の状態で既に私の削除メソッドで呼び出されていないことを理解していない?はい、httpの呼び出しは、角度のあるプロジェクトから来ています(質問を編集しました)。何を提案しているのかわからない、再度説明できますか? –
DELETEメソッドのサーバーコードが正常に見えます。ブラウザが実際にコードからDELETE要求を実際に送信したときに動作するはずです。しかし、クロスオリジンのDELETEが正しく動作するとき、ブラウザは* 2つのリクエストを行います:まず、ブラウザがプリフライトOPTIONSリクエストを行い、サーバがそのプリフライトOPTIONSリクエストに適切なレスポンスを送信すると、ブラウザはコードからDELETEリクエストを送信します。したがって、あなたのサーバーは、2つの別々の要求を処理する必要があります。まず、OPTIONSの200で応答し、次にDELETEに200で応答する必要があります。 – sideshowbarker