1

POSTリクエストを作成しようとしていますが、残念ながらPOSTの本文が送信されていないようです。

以下は私が使用しているコードです。コードは、ユーザーがフォームの「送信」ボタンではなく、リンクをクリックしたときに呼び出されます。エラーなしで実行され、呼び出されているサーブレットを呼び出しますが、前述したように、POSTの本文は送信されていないようです。

呼び出されているサーブレットにアクセスできるため、リクエスト本文が送信されないことを検証できます。

「requestBody」の代わりに「parameters」を使ってみました。また、パラメータ文字列(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
4

3 に答える 3

6

これらは、FirebugとFirefoxが本当に役立つような状況です。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;
        }
     }
});

間違いなく動作するはずです。

于 2008-10-19T05:53:42.100 に答える
1

parametersデータをAjax Request コンストラクターに渡すだけです。

new Ajax.Request(url, {
  method: 'POST', 
  parameters: {
    hello: "world", test: "test"
  },
  onSuccess: function(transport){
    var data = transport.responseText.evalJSON();
  }
});
于 2008-10-20T07:42:31.697 に答える