ajax.request 포스트 바디는 보내지 않습니다
-
03-07-2019 - |
문제
불행히도 포스트 요청을 만들려고 노력하고 있습니다. 불행히도 게시물의 본문은 전송되지 않은 것 같습니다.
아래는 내가 사용하는 코드입니다. 사용자가 "제출"버튼이 아닌 링크를 클릭하면 코드가 호출됩니다. 오류없이 실행되고, 호출되는 서블릿을 호출하지만 앞에서 언급했듯이 게시물의 본문은 결코 보내지 않는 것 같습니다.
호출되는 서블릿에 액세스 할 수 있기 때문에 요청 본문이 전송되지 않는지 확인할 수 있습니다.
"요청 바인"을 대체하여 "매개 변수"를 사용해 보았습니다. 또한 매개 변수 문자열 (x = a? y = b)을 사용해 보았습니다. 또한 "ckulk"에 유효한 값이 포함되어 있음을 확인했습니다.
어떤 아이디어?
new Ajax.Request(sURL,
{
method: 'POST'
, contentType: "text/x-json"
, requestBody: {ulk:ckULK}
, onFailure:
function(transport)
{
vJSONResp = transport.responseText;
var JSON = eval( "(" + vJSONResp + ")" );
updateStatus(JSON.code + ": " + JSON.message);
} // End onFailure
, onSuccess:
function(transport)
{
if (200 == transport.status)
{
vJSONResp = transport.responseText;
}
else
{
log.value += "\n" + transport.status;
}
} // End onSuccess
}); // End Ajax.request
해결책
이것은 Firebug와 Firefox가 정말로 도움이되는 상황입니다. FireBug가 없으면 FireBug를 설치하고 전송 된 요청을 확인하는 것이 좋습니다.
당신은 또한 확실히 고수해야합니다 parameters
대신에 requestBody
.
이것:
new Ajax.Request(sURL,
{
method: 'POST',
parameters: 'hello=world&test=yes',
onFailure: function(transport) {
vJSONResp = transport.responseText;
var JSON = eval( "(" + vJSONResp + ")" );
updateStatus(JSON.code + ": " + JSON.message);
},
onSuccess: function(transport) {
if (200 == transport.status) {
vJSONResp = transport.responseText;
} else {
log.value += "\n" + transport.status;
}
}
});
확실히 작동해야합니다.
다른 팁
데이터를 다음과 같이 전달하십시오 parameters
AJAX 요청 생성자에게 :
new Ajax.Request(url, {
method: 'POST',
parameters: {
hello: "world", test: "test"
},
onSuccess: function(transport){
var data = transport.responseText.evalJSON();
}
});
이 문제를 겪을 때 해결책은 제거하는 것이 었습니다. contentType
~에서 Ajax.Request
옵션.
~ 안에 대답 ~에 의해 Paolo Bergantino contentType
정의되지 않았습니다 Ajax.Request
옵션.
알 수없는 이유에서 정의 된 매개 변수 parameters
전송되지 않았다 (FF는 그들을 보여주지 않았고 내 서버는 빈 포스트 본체를 보았다).
내 동료 중 한 명이 사용하겠다고 제안했습니다 postBody
대신에 parameters
그러나 나는 그것을 시도하지 않았다.