문제

불행히도 포스트 요청을 만들려고 노력하고 있습니다. 불행히도 게시물의 본문은 전송되지 않은 것 같습니다.

아래는 내가 사용하는 코드입니다. 사용자가 "제출"버튼이 아닌 링크를 클릭하면 코드가 호출됩니다. 오류없이 실행되고, 호출되는 서블릿을 호출하지만 앞에서 언급했듯이 게시물의 본문은 결코 보내지 않는 것 같습니다.

호출되는 서블릿에 액세스 할 수 있기 때문에 요청 본문이 전송되지 않는지 확인할 수 있습니다.

"요청 바인"을 대체하여 "매개 변수"를 사용해 보았습니다. 또한 매개 변수 문자열 (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 그러나 나는 그것을 시도하지 않았다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top