94 votes

erreur de syntaxe : jeton inattendu <

J'ai essayé plusieurs choses et il n'y a aucun moyen, cette erreur apparaît toujours. J'ai essayé d'utiliser une seule option pour voir si elle passait, j'ai changé l'appel de jquery, mais non.

J'ai cherché à différents endroits sur Internet au sujet de cette erreur, mais je n'ai pas pu résoudre ou comprendre pourquoi elle se produit. Sur mon pc en utilisant EasyPHP fonctionne parfaitement, mais quand je mets en ligne ne fonctionne pas.

Erreur de syntaxe : jeton inattendu <

Voici mon code :

$(function(){
$('#salvar').click(function(){
    var key = 'salvar';
    var title = $('#title').val();
    var opcao1 = $('#opcao1').val();
    var opcao2 = $('#opcao2').val();
    var opcao3 = $('#opcao3').val();
    var opcao4 = $('#opcao4').val();
    var opcao5 = $('#opcao5').val();
    var opcao6 = $('#opcao6').val();

    if(title.length > 0){
        if(opcao2.length > 0){
            $('#resposta').removeClass().html('Salvando a enquete...<br clear="all"><br><img src="images/switch-loading.gif" />');
            $.ajax({
            type : 'POST',
            url : 'funcoes/enquete_adm.php',
            dataType : 'json',
            data: {key:key,title:title,opcao1:opcao1,opcao2:opcao2,opcao3:opcao3,opcao4:opcao4,opcao5:opcao5,opcao6:opcao6},
            success : function(data){
                if(data.sql == 'ok'){
                        $('#resposta').addClass('success-box').html('Enquete Salva!').fadeIn(1000);
                        $('#control').fadeOut();
                    }else if(data.sql == 'error'){
                        $('#resposta').addClass('info-box').html('Ops, aconteceu um erro. Por favor, tente novamente').fadeIn(1000);
                    }
                },
            error: function (XMLHttpRequest, textStatus, errorThrown) {    
                alert("XMLHttpRequest " + XMLHttpRequest[0]);alert(" errorThrown: " + errorThrown);alert( " textstatus : " + textStatus);    
            }
            });
        }else{
            $('#resposta').addClass('warning-box').html('É necessário no mínimo duas opções');
        };
    }else{
        $('#resposta').addClass('warning-box').html('Coloque a pergunta da enquete');
    };
    return false;

});
}); // End

2voto

user2428118 Points 3408

Je soupçonne qu'un de vos scripts inclut une URL de la carte source . (Le jQuery minimisé contient une référence à une carte source, par exemple).

Lorsque vous ouvrez les outils de développement de Chrome, ce dernier essaie de récupérer la carte source de l'URL pour faciliter le débogage. Cependant, la carte source n'existe pas réellement sur votre serveur, mais vous recevez une page 404 ordinaire contenant du HTML.

1voto

eirikarvey Points 77

Cette erreur peut également provenir d'un appel JSON AJAX vers un script PHP qui comporte une erreur dans son code. Les serveurs sont souvent configurés pour renvoyer des informations d'erreur PHP formatées avec des balises html. Cette réponse est interprétée comme un JSON invalide, ce qui entraîne l'erreur AJAX "unexpected token <".

Pour afficher l'erreur PHP à l'aide de Chrome, accédez au panneau Réseau dans l'inspecteur Web, cliquez sur le fichier PHP répertorié sur le côté gauche, puis sur l'onglet Réponse.

1voto

Onimusha Points 1117

Lorsque vous envoyez un message via ajax, il est toujours bon de commencer par soumettre normalement pour s'assurer que le fichier appelé renvoie toujours des données valides (json) et qu'il n'y a pas d'erreurs avec html ou d'autres

<form action="path/to/file.php" id="ajaxformx">

En ajoutant x à la valeur de l'id, jquery ne le traitera pas.

Une fois que vous êtes sûrs que tout va bien, retirez le x de id="ajaxform" et le vide le action valeur de l'attribut

Voici comment j'ai résolu la même erreur pour moi-même il y a quelques minutes :)

1voto

sadaf2605 Points 1136

J'avais aussi syntax error: unexpected token < lors de l'envoi d'un formulaire via ajax. Puis j'ai utilisé curl pour voir ce qu'il retourne :

curl -X POST --data "firstName=a&lastName=a&email=array@f.com&pass=aaaa&mobile=12345678901&nID=123456789123456789&age=22&prof=xfd" http://handymama.co/CustomerRegistration.php

J'ai eu quelque chose comme ça comme réponse :

<br />
<b>Warning</b>:  Cannot modify header information - headers already sent by (output started at /home/handymama/public_html/CustomerRegistration.php:1) in <b>/home/handymama/public_html/CustomerRegistration.php</b> on line <b>3</b><br />
<br />
<b>Warning</b>:  Cannot modify header information - headers already sent by (output started at /home/handymama/public_html/CustomerRegistration.php:1) in <b>/home/handymama/public_html/CustomerRegistration.php</b> on line <b>4</b><br />
<br />
<b>Warning</b>:  Cannot modify header information - headers already sent by (output started at /home/handymama/public_html/CustomerRegistration.php:1) in <b>/home/handymama/public_html/CustomerRegistration.php</b> on line <b>7</b><br />
<br />
<b>Warning</b>:  Cannot modify header information - headers already sent by (output started at /home/handymama/public_html/CustomerRegistration.php:1) in <b>/home/handymama/public_html/CustomerRegistration.php</b> on line <b>8</b><br />

Tout ce que j'ai eu à faire, c'est de changer le niveau du journal pour qu'il ne contienne que des erreurs plutôt que des avertissements.

error_reporting(E_ERROR);

1voto

omar nazzal Points 31

J'ai vérifié tous les chemins JS inclus

Exemple Changez ceci

<script src="js/bootstrap.min.js" type="text/javascript"></script>

À

<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" type="text/javascript"></script>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X