Параметры POST Ajax.Updater, не передаваемые Firefox - PullRequest
2 голосов
/ 22 февраля 2012

Я отлаживаю код, написанный кем-то другим - я также новичок в Ajax и JS.Приведенный ниже код использует Ajax (Prototype JavaScript framework, версия 1.6.0.1) для отправки простой контактной формы и обновления страницы ответом.Он отлично работает с IE8 и не работает с Firefox.Я проследил сбой до параметров сообщения.Целевой файл mail.php не получает никаких параметров POST, когда Firefox является браузером.Не только значения отсутствуют - параметры не определены в посте.URL действителен.Форма, файлы Ajax JS и сценарий mail.php находятся в одном домене.

Я пробовал варианты определения параметров var, как показано в нескольких других публикациях переполнения стека (встроенных, различных методов назначения и т. Д.).).Все дали те же результаты, что и код ниже.

Любая подсказка, что не так?

FF results
Please try again. responseText='', url='http://domain.com/builder/mail.php', 
form_name='dom', form_message='testing', form_email='dom@domain.com', 
form_to='info@domain.com'

IE8 results
Message Sent!

JS function
function sendForm(F)
{
    $("contact_form").hide();
    $("ajax-loader").show();

    var url = site_url+'mail.php';

    var form_message = escape($("message").value);
    var form_name = escape($("name").value);
    var form_address = escape($("address").value);
    var form_phone = escape($("phone").value);
    var form_email = escape($("email").value);
    var form_how_learn = escape($("how_learn").value);
    var form_to = escape($("to").value);

    var params = {message: form_message, 
                name: form_name, 
                address: form_address, 
                phone: form_phone, 
                email: form_email, 
                how_learn: form_how_learn,
                to: form_to};

    var ajax = new Ajax.Updater(
        'contact_form',
        url, 
        {
            method: 'post',
            parameters: params,
            onComplete: function (response) 
            {
                $("ajax-loader").hide();
                if (response.responseText == "ok")
                {
                    $("contact_form").innerHTML = "<p style=\"color:green;\">Message Sent!</p>";
                    $("contact_form").show();
                }
                else
                {
                    // Debug code added
                    $("contact_form").innerHTML = "<p style=\"color:red;\">Please try again."+
                        " responseText='"+response.responseText+"',"+
                        " url='"+url+"',"+
                        " form_name='"+form_name+"',"+
                        " form_message='"+form_message+"',"+
                        " form_email='"+form_email+"',"+
                        " form_to='"+form_to+"'"+
                        "</p>";
                    $("contact_form").show();
                }
            },
            onFailure: function ()
            {
                $("ajax-loader").hide();
                $("contact_form").innerHTML = "<p style=\"color:red;\">Please try again.</p>";
                $("contact_form").show();
            }
        }
    );
    return false;
}
...