奇怪的Firefox Ajax Post错误,在Chrome上工作正常,Opera也失败了

时间:2012-12-15 21:31:38

标签: php javascript ajax firefox post

我将两个变量发布到一个php文件,但我在firefox上得到了这个错误..

时间戳:12/15/2012 06:19:30 PM 错误:NS_ERROR_UNEXPECTED:意外错误 源文件:localhost / Algo 行:415

代码适用于Chrome,但在Opera

中也失败了

第415行是下一个代码的第一行

var IDsData = new FormData($('#formulario')[0]);
    IDsData.append("IDsValidar", $('#gene_ids_area').val());
    IDsData.append("Organismo", $('#organism_box :selected').val());

    $.ajax({
        type: "POST",
        url: "check_ids.php",
        data: IDsData,
        cache: false,
        processData: false,
        contentType: false,
        async: false
    }).done(function (data) {
        if (data == "") {
            error = 0;
        } else {
            error = 1;
            error_msg += "The identifiers: " + data + "are not vaid for the organism selected.\n";

        }
    });

我的php文件是,并且内容在这里 它解析一个文件,以验证一些ID

<?php

if (isset($_POST["IDsValidar"])) {
    $ids = $_POST["IDsValidar"];
}

if (isset($_POST["Organismo"])) {
    $organismo = $_POST["Organismo"];
}

$auxiliar = explode("\n",$ids);

foreach($auxiliar as $id)
{
$id = trim($id);
$fp = fopen("gene_names/$organismo.csv", 'r');
$paso_test = 0;
while($line = fgets($fp))
{   
        $line=trim($line);
    list($ID,$name)=explode(",",$line);
    if($id == $ID)
    {   
        $paso_test = 1;
    }
    if($id == $name)
    {
        $paso_test = 1;
    }
}   
if($paso_test == 0)
{   
    echo "$id\n";
}   
fclose($fp);    
}


?>

有什么建议吗?

3 个答案:

答案 0 :(得分:0)

更改...

$('#formulario')[0]

为...

$('#formulario').get(0)

答案 1 :(得分:0)

您是否尝试过调整所需文件的路径? 因为Google Chrome会自动查找文件和图片,而Firefox和Opera则不会。

我在从Chrome可以找到的文件夹中加载图片时遇到了这个问题,Firefox无法解决。通过从root创建静态路径解决了这个问题。 WWW /文件夹/ AJAX / ajax.php

答案 2 :(得分:0)

processData: false的问题 - 由于某种原因,Firefox出现了该选项的问题。

您可以暂时解决此问题,但可以设置processData: truedata: JSON.stringify(data)