:
방법 : 문자열 기본 HTTP 방법이 요청을 사용합니다.
문서는 PUT을 허용에 대한 언급을하지 않습니다. (설정하지만 PARAMS 그렇지 않으면 "GET"사용 "POST"를 사용합니다 존재하지 않는 경우)이 대소 문자를 구분하며 모두 대문자로해야합니다,하지만 또한 PUT을 허용하지 않는 것에 대해서는 언급하지 않습니다.
또한 HTTP Method Override을 사용하여 서블릿이 PUT 또는 DELETE에 매핑 된 서비스를 호출하도록하는 방법을 설명하는 설명서가 있습니다.
다른 HTTP 메소드 옵션을 생략 한 Ext.Ajax 문서와 함께 단순히 PUT 또는 DELETE를 직접 사용하는 대신 HTTP 메소드 오버라이드를 사용하도록 제안한다는 사실은 사용자가하려고하는 것이 내선
원시 XmlHttpRequests와 심지어 jQuery AJAX에서도 매우 이상하다고 생각됩니다.
그러나, 자바 스크립트의 동적 입력 및 기능적 특성을 활용 한 쉽게 this forum post에서 찍은 코드를 기본 Ajax 기능을 확장/재정의 할 수
Ext.lib.Ajax.request = function(method, uri, cb, data, options) {
if(options){
var hs = options.headers;
if(hs){
for(var h in hs){
if(hs.hasOwnProperty(h)){
this.initHeader(h, hs[h], false);
}
}
}
if(options.xmlData){
this.initHeader('Content-Type', 'text/xml', false);
method = (options.method == 'PUT' ? 'PUT' : 'POST');
data = options.xmlData;
}else if(options.jsonData){
this.initHeader('Content-Type', 'text/javascript', false);
method = (options.method == 'PUT' ? 'PUT' : 'POST');
data = typeof options.jsonData == 'object' ? Ext.encode(options.jsonData) : options.jsonData;
}
}
return this.asyncRequest(method, uri, cb, data);
};
// example request
Ext.Ajax.request({
url: 'testrest.php',
method: 'PUT',
headers: {'Content-Type': 'text/xml'},
success: function(response, opts) { Ext.Msg.alert('Sucess', 'Update has been successful'); },
xmlData: '<blah>de</blah>'
});
마지막으로, 그것의 버전도 분명하지 않다 위에서 사용한 코드 샘플은 2007에서 가져온 것입니다. params를 사용하는 대신 xsonData 대신 jsonData를 사용하도록 AJAX 요청을 수정해야 할 수도 있습니다. 매개 변수가 오버라이드/연장 동작. 또한 포럼의 포스터 중 하나는 params가있는 경우 지정된 내용에 관계없이 POST가 기본적으로 사용된다는 것을 언급했습니다. 따라서 이것은 jsonData를 대신 사용하는 것을 고려해야하는 또 다른 이유입니다.
jsonData가 사용자의 요구 사항을 충족시키지 못하면이 코드 예제의 작성자가 보여준 예제를 따라 params를 제출할 때 "PUT"요청이 포함되도록 Ext.Ajax 사본을 수정할 수 있습니다.
서블릿이 PUT 요청을 허용하도록 구성 되었습니까? – jmort253