Ajax.Updater POST params不是由Firefox传输的

时间:2012-02-22 17:40:36

标签: javascript ajax forms prototypejs params

我正在调试其他人编写的代码 - 我也是Ajax和JS的新手。下面显示的代码使用Ajax(Prototype JavaScript框架,版本1.6.0.1)提交一个简单的联系表单并使用响应更新页面。它与IE8完美配合,并在Firefox中失败。我已经跟踪了post参数的失败。当Firefox是浏览器时,目标文件mail.php没有收到任何POST参数。不只是缺少值 - 在帖子中没有定义参数。该URL有效。表单,Ajax JS文件和mail.php脚本都在同一个域中。

我已尝试过定义var params的变体,如其他几个Stack Overflow帖子(内联,不同的赋值方法等)所示。所有产生的结果与下面的代码相同。

有任何疑问是什么问题?

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;
}

0 个答案:

没有答案