Ich habe ein Problem. Ich sende Datei über AJAX (XMLHttpRequest). Sowieso. Die PHP-Funktion gibt ein Antwort-Array zurück, das in JSON codiert ist. Ich kann Array in JavaScript fangen, aber ich kann nicht auf den angegebenen Schlüssel im Array zugreifen. HierZugriff Antwort JSON-Array von XMLHttpRequest
ist das Konsolenprotokoll dieses Arrays:
{"data":"cos","data1":"cos1"}
Ich habe meine JavaScript-Datei:
$('input[name=zdjecie]').on("change",function() {
var inputfile = document.querySelector('#file');
var file = inputfile.files[0];
$('button[type=submit]').addClass('disabled');
var formData = new FormData();
var request = new XMLHttpRequest();
request.upload.addEventListener('progress', function(e){
var pro = Math.round(e.loaded/e.total * 100);
if(pro == 100) {
$('#upload_progress').css({'width':pro+'%', background:'#00A65A'});
$('button[type=submit]').removeClass('disabled');
}
else {
$('#upload_progress').css({'width':pro+'%', background:'#3C8DBC'});
}
}, false);
formData.append('file', file);
request.open('post', '/admin/ajax/upload-admin-photo');
request.send(formData);
request.onloadend = function() {
var result = request.response;
console.log(result.data);
};
});
Jetzt PHP-Funktion, die nach dem POST-Anfrage ausführt:
/**
* @Route("/admin/ajax/upload-admin-photo")
*/
public function ajaxUploadAdminPhotoAction(Request $request)
{
$data = $_FILES;
$response = array("data" => 'cos', 'data1' => 'cos1');
return new Response(json_encode($response));
}
Konsolenprotokoll der Variablen result
: {"data":"cos","data1":"cos1"}
Console Protokoll der Variable result.data
: undefined
Ich brauche wirklich Hilfe. Ich habe alles versucht! :(
Sie analysieren müssen (= decode) die Zeichenfolge '‘. {"data": "cos", "data1": "cos1"} ''zu einem json zuerst: ' var result = JSON.parse (request.response); ' – Jeff
Ja, das war's, Post antworten und ich werde es tun akzeptieren Sie es! –
verwandt: https://stackoverflow.com/questions/45015/safely-turning-a-json-string-into-an-object – Jeff