jQuery AJAX - Unexpected token + parsererror
J'ai écrit un script à l'aide de jQuery et AJAX aujourd'hui, et j'obtiens des erreurs...
Le script:
function changeAdmin(id) {
$(document).ready(function() {
$('#ta-modarea-'+id).fadeOut('fast');
$('#ta-m-loading-'+id).fadeIn('fast');
$.ajax({
type: 'POST',
url: 'ajax_utf.php?a=changeteamadmin',
dataType: 'json',
data: {
admin : $('#admin-id-'+id).val()
},
success: function(data) {
$('#ta-m-loading-'+id).fadeOut('fast');
$('#ta-modarea-'+id).text(data.msg).fadeIn('fast');
},
error: function(jqXHR, textStatus, errorThrown) {
$('#ta-m-loading-'+id).fadeOut('fast');
$('#ta-modarea-'+id).text('HTTP Error: '+errorThrown+' | Error Message: '+textStatus).fadeIn('fast');
}
});
return false;
});
}
Après la course, j'obtiens ce message d'erreur: HTTP Error: SyntaxError: Unexpected token < | Error Message: parsererror
Pourriez-vous m'aider, que dois-je faire?
Qu'advient-il si vous appelez ajax_utf.le php?a=changeteamadmin directement à l'extérieur de votre javascript?
Il affiche un message que je me suis assis dans le fichier PHP.
pouvez-vous vérifier si le json retourné est valide? vous pouvez vérifier le www.jsonlint.com
Il n'aime pas les codes jQuery .. 🙁
Il affiche un message que je me suis assis dans le fichier PHP.
pouvez-vous vérifier si le json retourné est valide? vous pouvez vérifier le www.jsonlint.com
Il n'aime pas les codes jQuery .. 🙁
OriginalL'auteur Skylineman | 2011-09-17
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin d'envoyer un
application/json
d'en-tête via PHP , comme ceci:C'est parce que jQuery envoie un en-tête Accept (
application/json, text/javascript
), et c'est la cause deparseerror
déclenchée parjqXHR
.Pour résoudre ce problème est ASP.NET (webforms) vous pouvez ajouter la
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
attribut à votre méthode.OriginalL'auteur Wrong
Essayer
dans votre fonction d'erreur
Je pense ajax_utf.php de retour de code html et pas de json. Utilisez-vous json_encode() dans youp script php?
Oui, il y a le "echo json_encode($retour);" c'est la fin.
et peut-être vous aussi écho code html lors de l'exécution du script? Est-ce que votre php scrit inclure toutes les balises html?
non, seulement ceux de PHP
OriginalL'auteur Alon Eitan
Si vous avez essayé de réglage de l'en-tête de type de contenu et sont encore en train de l'erreur. Il est mon espoir que le serveur répond avec une erreur à partir de votre code côté serveur. Généralement, quand un message de débogage est donné, il est dans le plus pur langage HTML n'est pas JSON donc le jeton inattendu.
Le moyen le plus rapide pour corriger cela est de définir le Type de données de l'HTML au lieu de JSON, de sorte que vous pouvez voir la sortie qu'il y a à partir du serveur, et pas seulement des données au format JSON.
Une fois que vous avez vu l'erreur qui est produite par votre serveur de code côté et résolu, vous pouvez ensuite retourner à être un Type de données JSON.
OriginalL'auteur Andrew Killen
contentType: "application/json; charset=utf-8",
OriginalL'auteur Sudhir
Essayer de code ci-dessous, mais si vous recevez un message d'erreur comme "Unexpected token <", vous devez vérifier votre fichier php - "ajax_utf.php" et de vérifier ce qui est retourné dans le navigateur (Chrome) Affichage->Développeur->Outils de développement, onglet Réseau -> XHR.
OriginalL'auteur rrr_2010
Il pourrait être un problème avec missmatching PHP associatif/tableaux numériques et des objets Javascript.
Essayez ceci:
Cela json codeur pour toujours coder des objets au lieu de tableaux numériques et peuvent résoudre le problème.
OriginalL'auteur Digitum