ajax在谷歌浏览器中发送两个变量,但没有在mozilla firefox中发送

时间:2014-01-02 19:36:57

标签: javascript php jquery ajax firefox

我试图通过ajax发送两个值,但问题是它只在mozilla中发送一个值

我的ajax

$('#post_submit').click(function() {
event.preventDefault();
var great_id = $("#post_container_supreme:first").attr("class");
var poster = $("#poster").val() 
    $.ajax({
        type: "POST",
        url: "post_update.php",
        data: 'poster='+ poster + '&great_id=' + great_id, //the value in great id is not being sent to the php page
        beforeSend: function() {
            $("#loader_ic").show();
            $('#loader_ic').fadeIn(400).html('<img src="data_cardz_loader.gif" />').fadeIn("slow");
        },
        success: function(data) {
            $("#loader_ic").hide();
            $("#new_post").prepend(data);
            $("#poster").val('');
        }

    })
})

})

3 个答案:

答案 0 :(得分:1)

您可能会遇到一些可能导致问题的编码错误。在第1行,您尚未定义变量event,它属于lambda函数的参数列表。改变这个:

$('#post_submit').click(function(event) {

第4行第二,你最后错过了;,以及在ajax调用之后和最后一行。

答案 1 :(得分:1)

尝试更换第8行

data: 'poster='+ poster + '&great_id=' + great_id, //the value in great id is not being sent to the php page

用这个:

data: {"poster": $("#poster").val(),"great_id": $("#post_container_supreme:first").attr("class")},

我正在做的是将数组传递给带有两个数据元素名称和值的ajax调用。

很明显你也错过了第4行的分号。

var poster = $("#poster").val() ;

答案 2 :(得分:1)

data JQuery.ajax()参数预期将接受普通的JavaScript对象而不是字符串。它将序列化对象并使其成为一个字符串(如果它还没有)。这是等效的(但可能无济于事,因为我已经知道你的方法也应该有效):

var dataToSend = {
    poster: $("#poster").val(),
    great_id: $("#post_container_supreme:first").attr("class")
}

$.ajax({
    type: "POST",
    url: "post_update.php",
    data: dataToSend 
    beforeSend: function() {
        $("#loader_ic").show();
        $('#loader_ic').fadeIn(400).html('<img src="data_cardz_loader.gif" />').fadeIn("slow");
    },
    success: function(data) {
        $("#loader_ic").hide();
        $("#new_post").prepend(data);
        $("#poster").val('');
    }
});