YUI asyncRequest:缺少POST参数

时间:2012-02-10 21:25:53

标签: struts yui struts-1

我正在使用YUI 2.6和Struts 1.2 java web应用程序。

我遇到POST asyncRequest的间歇性问题。服务器收到的一些请求没有任何参数。

大部分时间它工作正常。重现非常困难,只有我们的客户机器才会发生这种情况。我们无法在我们的环境中重现。我花了很长时间才找到根本原因。

Web浏览器是IE 7,8或9.我将不胜感激。

我查看this blog但没有帮助,因为我正在记录请求和参数的某些部分,其中内容类型标头正确地到达服务器。

代码:

new AjaxWrapper().asyncRequest( "<%=request.getContextPath()%>" + "/ajax/setValues.do",
{
    numberCheck: numberCheck,
    documentId: docBean.documentId,
    values: JSON.stringify( valueMap ),
    applyToF: applyToFCheckbox.checked,
    codeExternalF: (applyToFCheckbox.checked && codeExternalF.checked),
    applyToN: applyToNCheckbox.checked,
    codeExternalN: (applyToNCheckbox.checked && codeExternalN.checked)
},
{
    success: function( messageBeanJsonList, response, argument ) {
        // some code here
    },
    failure: function( messages ) {
        // some code here
    },
    after: function( messageBeanJsonList, response, argument ) {
        // some code here
    }, 
    argument: { codingPanel: mainCodingPanel, changedValues: changedValues }
},
AjaxWrapper.Methods.Post
);

对参数进行编码的方法:

_encodeParameters: function(parameters) {       
    var params = new Array();

    if (parameters) {
        for(var name in parameters) {
            if (YAHOO.lang.isArray(parameters[name])) {
                for(var i=0; i<parameters[name].length; i++) {
                    params.push(encodeURIComponent(name) + "=" + encodeURIComponent(parameters[name][i]));
                }
            }
            else {
                params.push(encodeURIComponent(name) + "=" + encodeURIComponent(parameters[name]));
            }
        }
    }

    return params.join("&");
}

0 个答案:

没有答案