YUI asyncRequest: отсутствуют параметры POST - PullRequest
1 голос
/ 11 февраля 2012

Я использую YUI 2.6 с веб-приложением Java Struts 1.2.

У меня периодически возникает проблема с POST asyncRequest.Некоторые из запросов, которые получает сервер, не имеют никаких параметров.

В большинстве случаев он работает нормально.Это очень трудно воспроизвести, и это происходит только с нашими клиентскими машинами.Мы не смогли воспроизвести в нашей среде.Я потратил довольно много времени, чтобы найти причину.

Веб-браузеры IE 7, 8 или 9. Буду признателен за любую помощь.

Я просмотрел этот блог , но не помог, потому что я регистрировал некоторые частизапросы и параметры, в которых заголовок типа контента правильно поступал на сервер.

Код:

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("&");
}
...