J'utilise Ajax file upload fonction avec son javascript/jQuery library.json retourne des données invalide erreur d'étiquette
Lorsque vous téléchargez un fichier, je continue à recevoir ce message d'erreur: SyntaxError: invalid label
Ceci est mon script JS:
jQuery('.uploadImage').live('click',function() {
ajaxFileUpload();
});
(...)
function ajaxFileUpload(){
jQuery.ajaxFileUpload({
url:'../wp-content/plugins/wp-filebrowser/uploader.php',
secureuri:false,
fileElementId:'uploadFile',
dataType: 'json',
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(data + ' - ' + status + ' - ' + e);
}
}
)
return false;
}
Mon script PHP fonctionne (testé avant d'utiliser JSON/jquery), mais il doit y être quelque chose de mal avec ma sortie json de mon fichier PHP. J'ai essayé deux approches. J'utilise json_encode pour formater la sortie.
Ceci est une partie de mon code PHP:
(...)
// Error message is at this stage empty.
move_uploaded_file($_FILES["file"]["tmp_name"], $uploadfile);
$respons = $_FILES["file"]["name"]._e(' successfully uploaded');
$data = array("error"=> $error, "msg"=> $respons);
echo json_encode($data);
MISE À JOUR
Il se trouve que j'utilisais _e()
de Worpdress pour soutenir multilangue. Le problème est que _e()
écho le contenu et par conséquent encombre la réponse JSON. Une fois que je suis passé à __()
cela a fonctionné.
Merci d'aider medebug ce poblem gars.
Etes-vous sûr que la sortie est correcte lorsque vous utilisez 'json_encode()'? – NullUserException
Essayé 'echo '(' .json_encode ($ data). ')';'? – Wrikken
J'utilise 'echo json_encode ($ data);' dans un autre projet et ça marche bien. Cependant, ici, je reçois cette sortie: 'uploadé avec succès [{" error ":" "," msg ":" __ Untitled-1.jpg "}]'. Cela ne semble pas correct ... – Steven