1

jqueryでajaxdeleteを実行しようとしていますが、httpエラー400が発生します。検索していたところ、jqueryのdeleteメソッドに問題があることがわかりました。

これが私のjs、controller(spring 3)、そしてChromeからのリクエストです。

あなたが今間違いが何であるかを教えてください、またはいくつかのリンクを与えてください。

$.ajax({  
                url: 'additions/cancelUpload',  
                type: 'DELETE',  
                data: {filename : ui.draggable.get(0).file.name},  
                success: function (res) {  
                    alert(res);
                }  
            }); 

ここでは実行は渡されません:

@RequestMapping(value = "cancelUpload", produces="text/html")
    @ResponseBody
    public String cancelUpload(@RequestParam("filename")String filename, HttpSession session ){ 
... 
} 

リクエスト:

リクエストURL:http:// localhost:8080 / WebStore / additions / cancelUpload
リクエスト方法:DELETE
ステータスコード:400不正なリクエスト
ヘッダービューソースをリクエスト
承認:*/*
Accept-Charset:windows-1251、utf-8; q = 0.7、*; q = 0.3
Accept-Encoding:gzip、deflate、sdch
Accept-Language:uk-UA、uk; q = 0.8、ru; q = 0.6、en-US; q = 0.4、en; q = 0.2
接続:キープアライブ
コンテンツ-長さ:17
Content-Type:application / x-www-form-urlencoded
Cookie:JSESSIONID = A7DF5CB262C460961BC7B5C7DCB23052
ホスト:localhost:8080
オリジン:http:// localhost:8080
リファラー:http:// localhost:8080 / WebStore / items?form
User-Agent:Mozilla / 5.0(Windows NT 6.1; WOW64)AppleWebKit / 535.1(KHTML、Geckoなど)Chrome / 13.0.782.112 Safari / 535.1
1X-Requested-With:XMLHttpRequest

エンコードされたフォームデータビューURL
ファイル名:6648.jpg

応答ヘッダー

接続:閉じる
コンテンツ-長さ:1043
Content-Type:text / html; charset = utf-8
日付:2012年5月26日土曜日10:03:58 GMT
サーバー:Apache-Coyote / 1.1
X-TraceId:4fc0a8f8-46
X-TraceUrl:/ Insight / services / traces / 4fc0a8f8-46?type = json
4

2 に答える 2

2

DELETEとしてリクエストを受け取ることができます

 @RequestMapping(value = "cancelUpload", produces="text/html" method = RequestMethod.DELETE)

しかし、これを

$.ajax({  
            url: 'additions/cancelUpload',  
            type: 'POST',  
            data: {filename : ui.draggable.get(0).file.name, _method: 'DELETE'},  
            success: function (res) {  
                alert(res);
            }  
        }); 

http://blog.springsource.org/2009/03/08/rest-in-spring-3-mvc/でPOSTリクエストの_method:'DELETE'パラメータについて読むことができます

誰かが今AJAXリクエストを本当に削除する方法を送信する場合。教えてください

于 2012-05-26T18:00:52.963 に答える
1

この方法でJavaScriptを使用して削除リクエストを送信しました。

var delete = document.getElementById('#delete');
var url = "url";
var http = new XMLHttpRequest();    
var params = "";
delete.addEventListener('click', function() {
    http.open("DELETE", url, true);     
    http.setRequestHeader("Content-type", "application/json");
    http.onreadystatechange = function() {
        if(http.readyState == 4 && http.status == 200) {
            window.location = url;
        }
    }
    http.send(params);
});

そしてコントローラーのメソッド

@RequestMapping(value="url", method = RequestMethod.DELETE, produces = "application/json")
@ResponseBody
public ResponseEntity<String> delete() {
    return new ResponseEntity<String>(HttpStatus.OK);
}
于 2016-04-13T04:04:09.150 に答える