Я пытаюсь передать ассоциативный массив из PHP в Javascript. Но, по какой-то причине, на выходе получается Undefined. Вот код:
PHP (Suppositional array):
$validationErrors = array("unregisteredName" => NULL,
"unregisteredEmail" => "Invalid e-mail", "unregisteredUsername" => NULL,
"unregisteredPassword" => NULL);
$log = array("errors" => $validationErrors);
echo json_encode($log);
Javascript:
var addUserCallback = function(data) {
if(data.errors && data.errors.length) {
$.each(data.errors, function(index, error) {
console.log(error);
$("#"+index).attr("placeholder", error);
});
}
else {
window.location="/users/success/";
}
};
var errorCallback = function(xhr, status, error) {
console.log(arguments);
};
self.addUser = function() {
var data = {
unregisteredName: $("#unregisteredName").val(),
unregisteredEmail: $("#unregisteredEmail").val(),
unregisteredUsername: $("#unregisteredUsername").val(),
unregisteredPassword: $("#unregisteredPassword").val()
};
$.post(addUserUrl, data).success(addUserCallback)
.error(errorCallback);
}
И вот что я получаю из инспектора Chrome:
data: "↵{"errors":{"unregisteredName":null, "unregisteredEmail": "Invalid e-mail. ", "unregisteredUsername":null, "unregisteredPassword":null}}"
data.errors: Undefined
Итак, происходит то, что, даже получая данные в переменной "data", из-за того, что она неформатирована, она всегда перенаправляет на страницу "success".
Есть идеи?