[错误:MultipartParser.end():流意外结束:状态=开始]

问题描述 投票:0回答:2

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

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);
    });

});

仅更改此文件中名为 informacion 的一个 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

在信息div中附加form.jade 在routes.perfil.js中,它使用res.render

进行渲染
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,
        });
    });
};
html node.js express pug multipartform-data
2个回答
0
投票

您的点击处理程序应该

return false
以防止浏览器尝试处理点击。这可能就是让你陷入困境的原因。如果这没有帮助,
console.log()
objAttr
的值并确保确实有一个与它的值对应的jade文件。


0
投票

如果有人仍在寻找这个,我的解决方案是从电容器配置中禁用 CapacitorHttp。

© www.soinside.com 2019 - 2024. All rights reserved.