0

当我尝试发送表单时收到此错误

link(rel='stylesheet',href='/stylesheets/home/profile/home_menu.css')
script(type='text/javascript',src='/javascripts/perfil_editar.js')

#logo_usuario
    img(src='')
#nombre_usuario(class='titulo1') 
    input(type='text',placeholder='',id="perfil_inputdatos_usuario")
    input(type="text",placeholder="",id="perfil_inputdatos_tipo")
#datos_fondo
#perfil_publicaciones_fondo
    select(id='perfil_publicaciones_lista',size='2')
        option(value='si', selected='selected') Publicacion 1
        option(value='no') Publicacion 2
    #perfil_publicaciones_ir
        t Ir    

#perfil_busquedas_fondo
    select(id='perfil_busquedas_lista',size='2')
        option(value='si', selected='selected') Busqueda 1
        option(value='no') Busqueda 2
    #perfil_busquedas_ir
        t Ir    


#ubicacion_fondo

#datos_usuario
    #perfil_datos_nombre
        img(src='/images/logo_nombre2.png')     
    #perfil_datos_telefonos
        img(src='/images/logo_telefono2.png')   
    #perfil_datos_direccion
        img(src='/images/logo_direccion2.png')
    #perfil_datos_mail  
        img(src='/images/logo_web2.png')

    form(action='/nuevaEdicion',method='post',enctype='multipart/form-data',id='editar')
        input(type='name',name='perfil_inputdatos_nombre',id='perfil_inputdatos_nombre')
        input(type='name',name='perfil_inputdatos_direccion',id='perfil_inputdatos_direccion')
        input(type='name',name='perfil_inputdatos_telprivado', id='perfil_inputdatos_telprivado')
        input(type='name',name='perfil_inputdatos_telcontacto',id='perfil_inputdatos_telcontacto')
        input(type='name',name='perfil_inputdatos_telcelular',id='perfil_inputdatos_telcelular')
        input(type='name',name='perfil_inputdatos_mail',id='perfil_inputdatos_mail')

#datos_titulo(class='titulo2')
    t Datos

#perfil_publicaciones_titulo(class='titulo2')
    t Publicaciones Realizadas
#perfil_busquedas_titulo(class='titulo2')
    t Busquedas Guardadas

#ubicacion_titulo(class='titulo2')
    t Ubicacion
#perfil_editar
    t Editar Perfil

我用这个脚本在 ajax 中渲染它

$(document).ready(function(){

    $('.perfil_nav a').click(function(){
      var objAttr=$(this).attr("id");
      $('#informacion').animate({height:'hide'},600,
        function()
            {
              $.ajax({
                url: "/profile_arquitecture_/"+objAttr,
              }).done(
                function(msg) {$('#informacion').html(msg);});
            });
        $('#informacion').fadeIn(600);
    });

});

从这个文件 home.jade 只改变一个名为 informationacion 的 div

extends layout

append head
    link(rel='stylesheet',href='/stylesheets/home/home.css')
    script(type="text/javascript",src="https://maps.google.com/maps/api/js?sensor=false&language=es")
    script(type='text/javascript',src='/javascripts/home_menu.js')

block contenido_central
    #contenido
        #capa_principal
            #barra_sesion
                #barra_menu
                    ul(class='perfil_nav')
                        li(class='first') 
                            a(href='#',id='miperfil') Perfil
                        li 
                            a(href='#',id='mispublicaciones') Mis Publicaciones
                        li 
                            a(href='#',id='misbusquedas') Mis Busquedas     
                        li(class='last') 
                            a(href='#',id='mismensajes') Mensajes
            #informacion

将 form.jade 附加到使用 res.render 渲染的 routes.perfil.js 的信息 div 中

exports.editarPerfil=function(req,res)
{
    console.log(req.body)   
    res.render('home/nosotros',
    {title: 'Bienvenido ',
     sessionUser: req.session.passport.user
    });
}

在 app.js 中

app.post('/nuevaEdicion',express.bodyParser(),routes.perfil.editarPerfil);

这是控制台中的错误

[Error: MultipartParser.end(): stream ended unexpectedly: state = START]
{}

编辑2:

我发现当我输入表格时

enctype="application/x-www-form-urlencoded"

页面冻结但当我放

enctype="multipart/form-data"

我必须多次单击提交,但表单工作正常,控制台中的结果是

{ perfil_inputdatos_nombre: '',
  perfil_inputdatos_direccion: '',
  perfil_inputdatos_telprivado: '',
  perfil_inputdatos_telcontacto: '',
  perfil_inputdatos_telcelular: '',
  perfil_inputdatos_mail: '' }

当我把

enctype="text/plain"

表单可以快速正常工作,没有问题,但控制台中的结果是

{}

所以我认为问题出在html中,但任何人都可以解决这个问题???坦克

这是配置文件 ID 处理程序

exports.profile_pages=function(req,res)
{
    var usuario_actual=req.session.passport.user;
    mongo.dbusuarios.infoUsuario(usuario_actual,function(err,items)
    {
        if(err) throw err;
        res.render('home/profile/home_'+req.params.id,
        {
            title:'',
            layout:false,
            datos_perfil:items,
        });
    });
};
4

1 回答 1

0

您的点击处理程序应该return false阻止浏览器尝试处理点击。这可能是什么让你搞砸了。如果这没有帮助,console.log()objAttr确保确实存在与其值相对应的玉文件。

于 2012-08-29T07:49:54.210 回答