Este es mi javascript

function ajax_post(){
            //Create our XMLHttpRequest object
            var hr = new XMLHttpRequest();
            //Create some variables we need to send to our PHP file
            var url = "LiveUpdate.php";
            var sb = document.getElementById("LiveUpdate").value;
            var FirstName = document.getElementById("FirstName").value;
            var images = document.getElementById("images").value;

            var vars = "update="+sb+"&FirstName="+FirstName+"&images="+images;
            hr.open("POST", url, true);
            //Set content type header information for sending url encoded variables in the request
            hr.setRequestHeader("Content-type", "multipart/form-data");
            //Access the onreadystatechange event for the XMLHttpRequest object
            hr.onreadystatechange = function() {
                if(hr.readyState == 4 && hr.status == 200) {
                    var return_data = hr.responseText;
                    document.getElementById("message").innerHTML = return_data;
                }
            }
            //Send the data to PHP now... and wait for response to update the status div
            var formData = new FormData(document.querySelector("form"));
            hr.send(formData); //Actually execute the request //Actually execute the request
            document.getElementById("message").innerHTML = "processing...";
        }
            //show image before uploading
                var loadFile = function(event) {
                var output = document.getElementById('output');
                output.src = URL.createObjectURL(event.target.files[0]);
                };//end image

y este es el formulario. javascript y el formulario está en el mismo archivo. el nombre de archivo es sample.php

<form action="popup.php" method="post" id="myForm" name="myForm" enctype="multipart/form-data">
    <div id="message"></div>
    <img src="" id="output" />
    <input type="file" class="filestyle" data-buttonBefore="true" accept=".png, .jpg, .jpeg" onchange="loadFile(event)" name="images" id="images">
    <input class="form-control" type="text" placeholder="First Name" name="FirstName" id="FirstName" value="">
    <a href="#" class="btn btn-success" role="button" name="update" id="LiveUpdate"  onclick="javascript:ajax_post();">Update</a>
</form>

la idea en este código. quiero insertar la información básica como el Nombre y la Imagen en la base de datos vivir sin actualizar la página. la razón por la que yo elija etiqueta para presentar el ajax. por lo que la url de la página de la Cuenta.php?Edit=1 no va a cambiar a Account.php porque si cambio a account.php la ventana emergente de edición modo de cierre. el problema en este código. no sé cómo arreglar el error Warning: Missing boundary in multipart/form-data POST data in Unknown on line 0 alguien me puede ayudar como solucionar esto. gracias!

OriginalEl autor Kenneth Suaverdez | 2016-11-12

1 Comentario

  1. 8

    El navegador establece el correcto encabezados (incluyendo el correcto multipart límite de indicación en el tipo de Contenido) si no ha especificado manualmente nada.

    Así que todo lo que necesitas hacer es eliminar la siguiente línea:

     hr.setRequestHeader("Content-type", "multipart/form-data");

    De lo contrario tendrá que establecer los límites a sí mismo tal como es sugerido por Ellias Van Ootegem en La carga de un archivo con XMLHttprequest – Falta de límites en multipart/form-data:

    hr.setRequestHeader("Content-type","multipart/form-data; charset=utf-8; boundary=" + Math.random().toString().substr(2));
    Como por comentario aquí por Elias Van Ootegem: stackoverflow.com/questions/12348216/…
    Hombre he pasado todo el día tratando de enviar datos de un formulario. Que hizo el truco. Muchas gracias !

    OriginalEl autor Suat Husein

Dejar respuesta

Please enter your comment!
Please enter your name here