Как исправить синтаксическую ошибку неожиданного токена <, On jQuery.ajaxFileUpload

0

Это мой код JQuery

function kirimgambar(chatboxtitle) {

    var file = jQuery( ".pilih" ).val();
    if(file==""){ 
    jQuery("#chatboxtextarea").focus();
    }else {
    jQuery("#loading")
    .ajaxStart(function(){
        jQuery(this).show();
    })
    .ajaxComplete(function(){
        jQuery(this).hide();
    });

    jQuery.ajaxFileUpload
    (
        {
            url:'http://localhost:8080/diobatin/application/views/chat/chat.php?action=kirimfile',
            secureuri:false,
            fileElementId:'fileToUpload',
            dataType: 'json',
            data:{name:'logan', id:'id', chatboxtitle:chatboxtitle},
            success: function (data, status)
            {
                if(typeof(data.error) != 'undefined')
                {
                    if(data.error != '')
                    {
                        alert(data.error);
                    }else
                    {
                        alert(data.msg);
                    }
                }
            },
            error: function (data, status, e)
            {
                alert(e); //This ouput is "syntax error unexpected token <"
            }
        }
    )
    chatHeartbeatTime = minChatHeartbeat;
    chatHeartbeatCount = 1;
    return false;   
    }

}

И в chat.php есть

    function kirimfile() {
    $error = "";
    $msg = "";
    $fileElementName = 'fileToUpload';
    if(!empty($_FILES[$fileElementName]['error']))
    {
        $error = 'No file was uploaded..';
    }elseif(empty($_FILES['fileToUpload']['tmp_name']) || $_FILES['fileToUpload']['tmp_name'] == 'none')
    {
        $error = 'No file was uploaded..';
    }else 
    {
            $upload_path = "./asset/";
            if (!is_dir($upload_path)) {
                mkdir($upload_path);
            } 

             $file = $_FILES['fileToUpload']['name'];
             $tmp  = $_FILES['fileToUpload']['tmp_name'];
                // jika $file ada dan tidak kosong
                if ((isset($file)) && ($file != "")) { 
                    // handle apabila sudah ada file sama yang terupload, maka akan dibuat copynya
                    $uploadfile = (file_exists($upload_path.$file)) ? $upload_path." copy of ".$file : $upload_path.$file;
                    move_uploaded_file($tmp, $uploadfile);
                    if (chmod($uploadfile, 0775)) {
                        $from = $_SESSION['username'];
                        $to = $_POST['chatboxtitle'];
                        $message =  $_SESSION['username'];
                        $messagesan = sanitize($message);

    if (!isset($_SESSION['chatHistory'][$_POST['to']])) {
        $_SESSION['chatHistory'][$_POST['to']] = '';
    }

    $_SESSION['chatHistory'][$_POST['to']] .= <<<EOD
                       {
            "s": "1",
            "f": "{$to}",
            "m": "{$messagesan}"
       },
EOD;
    unset($_SESSION['tsChatBoxes'][$_POST['to']]);          

                        }
            }
    }
    echo '<meta http-equiv="Content-type" content="text/html; charset=UTF-8">';
    echo "{\n";
    echo                "error: '" . $error . "',\n";
    echo                "msg: '" . $msg . "'\n";
    echo "}";
}

Этот вывод возвращается на alern - это синтаксическая ошибка неожиданного токена < in chrome Но в mozilla firefox Отчет Erro - Кодировка символов в документе с рамкой не была объявлена. Документ может выглядеть по-другому, если смотреть без документа, обрамляющего его.

  • 0
    <meta http-equiv="Content-type" content="text/html; charset=UTF-8"> не является JSON , вам это все равно не нужно.
  • 0
    Вы можете сделать это как $arr = array('error'=>$error,'msg'=>$msg); echo json_encode($arr); ,
Показать ещё 3 комментария
Теги:
file-upload

1 ответ

0

<meta http-equiv="Content-type" content="text/html; charset=UTF-8"> и \n не JSON.

замещать

echo '<meta http-equiv="Content-type" content="text/html; charset=UTF-8">';
echo "{\n";
echo                "error: '" . $error . "',\n";
echo                "msg: '" . $msg . "'\n";
echo "}";

С

$arr = array(
            'error' => $error,
            'msg'   => $msg
        ); 

echo json_encode($arr);
  • 0
    это то же самое = в Mozilla выводится == Кодировка символов документа в рамке не была объявлена. Документ может выглядеть по-другому, если его просматривать без документа, обрамляющего его.
  • 0
    Бит php работает нормально? Я имею в виду это делает загрузки без AJAX? Если бы я был тобой, я бы сделал это первым. Возможно, php генерирует ошибку, которая распечатывается и возвращается в запрос ajax.
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню