簡體   English   中英

REST從jQuery刪除:方法不允許錯誤

[英]REST delete from jQuery : Method Not Allowed error

我試圖使用jQuery Ajax刪除記錄並調用RESTful服務。 但是當我執行時,我收到錯誤

The specified HTTP method is not allowed for the requested resource 
(Method Not Allowed).

這可能是什么原因?

REST服務代碼

@Path("/employee")

@DELETE
@Path("/{empNo}")
@Produces(MediaType.APPLICATION_JSON)
public void remove(@PathParam("empNo") short empNo) {
getEmployeeService().delete(empNo);
}

jQuery ajax代碼

$(document).ready(function () {
    var empNo = 9870;
    $("#btnSubmit").click(function () {
        $.ajax({
            url: "http://localhost:8181/Test1/rest/employee",
            type: "POST",
            data: JSON.stringify(empNo),
            contentType: "application/json; charset=utf-8",
            dataType: "json",
        })
    });
});

使用DELETE類型並使用url傳遞empNo 由於刪除方法只需要empNo,因此不需要數據,dataType。

$(document).ready(function () {
    var empNo = 9870;
    $("#btnSubmit").click(function () {
        $.ajax({
            url: "http://localhost:8181/Test1/rest/employee/" + empNo, // Pass empNo
            type: "DELETE", // Use DELETE
           // data: JSON.stringify(empNo), Commented these two.
           // dataType: "json",
        })
    });
});

您尚未在網址中指定empno

將URL更改為:http:// localhost:8181 / Test1 / rest / employee / 9870

為什么類型不是DELETE?

另外,為什么員工編號不是路徑的一部分,因為您將其指定為具有@Path屬性的路徑的一部分?

DELETE用於刪除由URI標識的資源。

成功刪除后,返回HTTP狀態200(OK)以及響應正文,可能是已刪除項目的表示(通常需要太多帶寬)或包裝響應。 要么是返回HTTP狀態204(NO CONTENT)而沒有響應正文。 換句話說,建議的響應是204狀態,沒有正文,或JSEND樣式響應和HTTP狀態200。

您還需要指定empNo作為URL的一部分

修改您的代碼如下,然后嘗試

 type: 'DELETE',
 url: "http://localhost:8181/Test1/rest/employee" + '/' + empNo,

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM