ajax不适用于Firefox,但适用于chrome

时间:2015-01-20 17:29:42

标签: jquery mysql ajax google-chrome firefox

我正在尝试使用ajax插入数据库。它适用于chrome但可以在firefox上运行。请帮助。我的代码是

我在控制台上有这些

Use of inputEncoding is deprecated.

 FormData { }

这是我的剧本

$(document).ready(function() {
$('.comment-block').load('connection/profile_comment.php');
$("#pcom").on('submit', function(e){    
    e.preventDefault(); 
    var myForm = new FormData($(this)[0]);
    console.warn(myForm);
    $.ajax({
        type:'POST',
        url: 'connection/profile_comment.php',
        data : new FormData($(this)[0]),
        cache: false,
        contentType:false,
        processData: false,
        beforeSend: function(){
            $("#loading").show().fadeOut(5000);
        },
        success: function(data){
            //$('.comment-block').load('connection/profile_comment.php');
            console.log(data);
            $("#loading").hide();
            $("#success").show().fadeOut(5000);
            $("#pcom").find("#profile_comment").val("");
            $('.comment-block').html(data);
        },
        error: function(data){
            $("#error").show().fadeOut(5000);
        }
    });
});
});

和connection / profile_comment.php

    if (isset($_POST['pcomment']))
    {
    $comment=$_POST['profile_comment'];
    $student_id=$_POST['student_id'];
    $sendcomment=$dbh->prepare("INSERT INTO profile_comment (student_id,  commenter_id, comment) VALUES (:student_id,:commenter_id,:comment)");
    $sendcomment->bindParam(':student_id', $student_id);
    $sendcomment->bindParam(':commenter_id', $user_id);
    $sendcomment->bindParam(':comment', $comment);
    $sendcomment->execute();
    }

1 个答案:

答案 0 :(得分:2)

首先解决这个问题:

$("#pcom").on('submit', function(){ 
    return false; 

对此:

$("#pcom").on('submit', function(event){ 
        event.preventDefault();

如果不起作用,请在最后一个代码旁边添加(在$ .ajax(...)之前:

var myForm = new FormData($(this)[0]);
console.warn(myForm);

并告诉我们在控制台上显示的内容