AJAX XMLHttpRequest给出错误

时间:2013-03-25 13:02:50

标签: php ajax apache2 xmlhttprequest

我必须在php上部署一个应用程序,它是使用wamp服务器开发的(在win上)。现在我必须在apache2 debian服务器上部署它。该应用程序使用wamp在开发人员PC上运行,但无法在debian服务器上运行。

问题是所有网格(jquery网格)都使用ajax加载内容

grid.jqGrid({
            datatype: "xml",
            url:'../Controladores/cPedidos.php?action=lpd',
            mtype: 'POST',
            colNames:['FECHA','DEPOSITO','USUARIO'],
            colModel:[
                {name:'fecha_pedido',index:'fecha_pedido',width:120, sorttype: 'date'},
                {name:'deposito',index:'deposito',width:500, editable:false},
                {name:'usuario_id',index:'usuario_id',width:150, editable: false}
            ],
            rowNum:10,
            rowList:[10,20,40],
            pager: '#paginacion',
            gridview:true,
            rownumbers:true,
            ignoreCase:true,
            sortname: 'fecha_pedido',
            viewrecords: true,
            sortorder: "asc",
            caption:"Pedidos",
            height: "100%",
            subGrid : true,
            subGridUrl: '../Controladores/cPedidos.php?action=lad',
            subGridModel: [{ name  : ['Codigo','Cantidad','Articulo','Estado','Categoria','Observaciones'], 
                width : [50,50,450,60,60,150] }], 
            editurl: '../Controladores/cPedidos.php?action=editar',
            ondblClickRow: function(id, ri, ci) {
                // edit the row and save it on press "enter" key
                grid.jqGrid('editRow',id,true,null,null, 'clientArray');
            },
            onSelectRow: function(id) {
                if (id && id !== lastSel) {
                    // cancel editing of the previous selected row if it was in editing state.
                    // jqGrid hold intern savedRow array inside of jqGrid object,
                    // so it is safe to call restoreRow method with any id parameter
                    // if jqGrid not in editing state
                    if (typeof lastSel !== "undefined") {
                        grid.jqGrid('restoreRow',lastSel);
                    }
                    lastSel = id;
                }
            }
        }).jqGrid('navGrid','#pager',{add:false,edit:false},{},{},myDelOptions,{multipleSearch:true,overlay:false});
        //grid.jqGrid('filterToolbar',{defaultSearch:'cn',stringResult:true});
        $("#filtro").change(function(){
            var valor = $("#filtro").val();
            $("#tablapedidos").jqGrid().setGridParam({url:'../Controladores/cPedidos.php?action=lpd&filtro='+valor}).trigger('reloadGrid');
        });

问题是没有任何东西被加载,使用firebug我得到了url的帖子被中止。

如果我直接在浏览器上输入网址(ff)我收到“连接已重置”错误,Chrome:“错误324(net :: ERR_EMPTY_RESPONSE)”。如果我在开发者pc的本地主机上执行此操作,我会获得XML文件,url页面使用echo创建XML文件, 示例(未完成)

function getArticulosPendientes() {
if ( stristr($_SERVER["HTTP_ACCEPT"],"application/xhtml+xml") ) {
header("Content-type: application/xhtml+xml;charset=utf-8"); } else {
header("Content-type: text/xml;charset=utf-8");
}
$et = ">";
echo "<?xml version='1.0' encoding='utf-8'?$et\n";
echo "<rows>";

$lista = getListaArticulosPendientes($_POST);
$resultado = array();

for($i = 0; $i < count($lista); $i++) {
    $fila = $lista[$i];
    $dif = diferenciaCompradoPedido($fila['item_id']);
    if($dif > 0) {
        $fila['cantidad'] = $dif;
        array_push($resultado, $fila);
    }
    else {
        array_push($resultado, $fila);
    }
}

for($a = 0; $a < count($resultado); $a++) {
    $row = $resultado[$a];
    $fecha = date("d/m/Y H:i", strtotime($row["fecha_pedido"]));
    echo "<row id='". $row["item_id"]."'>";
    echo "<cell>". $fecha."</cell>";
    echo "<cell>". $row["cantidad"]."</cell>";
    echo "<cell><![CDATA[". utf8_encode($row["descripcion"])."]]></cell>";
    echo "<cell><![CDATA[". $row["categoria"]."]]></cell>";
    echo "<cell><![CDATA[". $row["usuario_id"]."]]></cell>";
    echo "<cell><![CDATA[". $row["estado"]."]]></cell>";
    echo "<cell><![CDATA[". $row["observaciones"]."]]></cell>";
    echo "</row>";
}
echo "</rows>";

}

任何想法

1 个答案:

答案 0 :(得分:0)

您正在使用相对路径。将路径更改为绝对路径,如:http://www.yourdomain.com/folder/path/to/Controladores/cPedidos.php?action=lpd