0

req.getParameter("some_Parameter"); でパラメーターを取得しようとするサーブレットに、JS ファイルに記述された xmlHttpRequest.send(params) を介していくつかのパラメーターを送信しようとしています。サーブレットでは null を返します。ただし、パラメーターをURLに追加して送信すると、正常に機能します。ただし、URL が大きくなると、コードが壊れます。だから誰か助けてください。

前もって感謝します。

function doHttpPost(theFormName, completeActivity) 
{ 
    var xmlhttp = new ActiveXObject("MSXML2.XMLHTTP"); 
    var xmlMessage = buildPOST(theFormName, completeActivity); 
    var responseTxt; 
    try { 
        xmlhttp.Open(document.forms[theFormName].method, document.forms[theFormName].action+'?'+xmlMessage, false); 
        xmlhttp.onreadystatechange=function() { 
            if (xmlhttp.readyState==4) { 
                responseTxt = xmlhttp.responseText; 
            } 
        } 
        xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        enableDisableLinks(true);
        setPointer();  
        xmlhttp.Send(); 
        if(xmlhttp.Status != 200) { 
            alert("Post to server failed"); 
        } 
    } catch (e) { 
        responseTxt = "Exception while posting form data: Error No: " + e.number + ", Message: " + e.description; 
    } 

    resetPointer();  
    enableDisableLinks(false);
    var expectedTxt = "Form Data had been successfully posted to the database." 
    if(responseTxt.toString() == expectedTxt.toString()) { 
        // MNP: New requirement from Jeanne, should not refresh CM page, commenting it off for now
        //if(completeActivity) {
        //  if (typeof (ViewCaseDetailBtn) != 'undefined') {
        //      ViewCaseDetailBtn.click();
        //  }
        //}
        return true; 
    } else {
        alert (responseTxt); 
    }
    return false; 
}
4

1 に答える 1

1

バグ

//IE only - shooting yourself in the
// Not all IE versions use ActiveX!
var xmlhttp = new ActiveXObject("MSXML2.XMLHTTP");    foot. 

//JavaScript case sensitive, open !== Open
xmlhttp.Open(document.fo...

//JavaScript case sensitive, send !== Send
xmlhttp.Send();

//JavaScript case sensitive, status !== Status
xmlhttp.Status

また、同期を使用している場合、onreadystatechange は呼び出されません。

POST を使用している場合、値send("valuestosendup")はクエリ文字列ではなくにある必要があります。

このコードは、フレームワークを実際に使用して Ajax 呼び出しを行い、自分でロールバックしないようにする必要がある理由を示しています。

于 2013-01-25T15:03:18.017 に答える