erreur de syntaxe: fin inattendue de l'entrée parseJSON

Je suis sur environ 5 heures de cela et de la figure, il est temps de demander de l'aide. Je suis en train d'utiliser AJAX+php pour charger une image et du texte des données sur un formulaire dans une base de données. L'ensemble du système est:

une page avec un formulaire, social.php
une page de traitement php, postMsg.php
et une fonction javascript postMsg() qui affiche le formulaire de la page de traitement php et est censé renvoyer les résultats à un div sur social.php

Le problème est que le $.parseJSON(données) de commande dans le code javascript, aboutit à une "fin inattendue de l'entrée" erreur:

Failed:  
SyntaxError {stack: (...), message: "Unexpected end of input"}
(index):156
Uncaught SyntaxError: Unexpected end of input jquery.js:4235
b.extend.parseJSON jquery.js:4235
(anonymous function) (index):158
c jquery.js:4611
p.fireWith jquery.js:4687
k jquery.js:10335
r

Je pensais qu'il y avait un problème avec mon code javascript, mais je code-vérifié et c'est bien:

     function postMsg() {
        console.log("submit event");
        var fd = new FormData(document.getElementById("commentSubmit"));
        fd.append("label", "WEBUPLOAD");
        document.getElementById('progressBar').style.display = 'block';

        $.ajax({
          url: "postMsg.php",
          type: "POST",
          xhr: function() {  //Custom XMLHttpRequest
            var myXhr = $.ajaxSettings.xhr();
            if(myXhr.upload){ //Check if upload property exists
                myXhr.upload.addEventListener('progress',progressHandlingFunction, false); //For handling the progress of the upload
            }
            return myXhr;
          },
          data: fd,
          enctype: 'multipart/form-data',
          processData: false,  //tell jQuery not to process the data
          contentType: false   //tell jQuery not to set contentType
        }).done(function( data ) {
            console.log("PHP Output:");
            console.log( data );

            try {responseData = $.parseJSON(data)}
            catch (e) {console.log('Failed: ', e, data);}

            var items = $.parseJSON(data);
            document.getElementById('progressBar').style.display = 'none';
        });
        return false;
    }

Puis j'ai pensé qu'il y avait un problème avec mon php, mais qu'il a remplacé tous avec une commande simple et il toujours ont abouti à la même erreur:

$json_array = array('selfie'=>'hello');

Puis j'ai pensé qu'il pourrait y avoir un problème avec mon formulaire de saisie, j'ai donc réécrit, mais c'est encore de retourner la même erreur:

echo '<div data-role="fieldcontain" style="margin-top: -30px;margin-bottom: -30px;border-bottom: 0px;">
                <form method="post" name="commentSubmit" id="commentSubmit">
                  <div style="width=100%; font-size:.9em;" data-role="fieldcontain">
                  <label class="ui-input-text" for="msg_txt">Chip in:</label>';

//         $selfie = get_selfie($uid);
        echo '<div style="margin-top: 10px; margin-bottom: 10px; display: block; font-size:.9em">';

echo '<input name="file" type="file">';
        echo '<textarea style="width:100% text-align:left; font-weight:normal;" class="ui-btn ui-btn-inline ui-btn-icon-notext ui-btn-up-c" data-iconshadow="true" data-shadow="true" data-corners="false" cols="23" rows="1" name="msg_txt" id="msg_txt"></textarea>';
        echo '<a style="border-radius:8px" class="ui-btn ui-btn-inline ui-btn-icon-notext ui-corner-right ui-controlgroup-last ui-btn-up-c" title="My button" data-wrapperels="span" data-iconshadow="true" onclick="postMsg();" data-shadow="true" data-corners="true" data-role="button" data-icon="search" data-iconpos="notext" data-theme="c" data-inline="true"><span class="ui-btn-inner ui-corner-right ui-controlgroup-last"><span class="ui-btn-text">My button</span><span class="ui-icon ui-icon-search ui-icon-shadow">&nbsp;</span></span></a>';
        echo '<div id="photoUploaded" style="display: none;
position: relative;
text-align: center;
background-color: white;
opacity: .5;
color: black;
float: right; 
vertical-align: middle;
font-family: sans-serif;
border-radius: 10px;
padding: 10px;">photo loaded</div>';

                  echo '<input name="refresh" value="1" id="refresh" type="hidden">
                    <input name="uname" value="'.get_name($uid).'" id="uname" type="hidden">
                    <input name="uid" value="'.$uid.'" id="uname" type="hidden">

                </form>

Des idées?

sonne bien comme JSON n'est pas retourné
Qu'avez-vous obtenir console.log( data );?
c'est ce que je l'obtenir à partir de la console: événement submit (index):132 PHP de Sortie: (index):152 (index):153 a Échoué: SyntaxError {pile: (...), le message: "la fin Inattendue de l'entrée"} message: "la fin Inattendue de l'entrée" de la pile: (...) d'obtenir pile: function () { [native code] } jeu de pile: function () { [native code] } proto: Erreur
Êtes-vous à l'aide de la fonction php json_encode($yourArray) ? Cela permettra d'assurer que vous êtes sortie dans le bon format json
c'est la fonction php: $json_array = array('selfie'=>'hello');

OriginalL'auteur mobro | 2014-08-07