jqueryフォームプラグインを使用して画像をアップロードしていますが、すべてうまくいきます。私が抱えている問題は、サーバーからphpスクリプトによって送信されたjson応答に関してです。
//This is the way i output and encode the jason in my php script
$errors['success'] = false;
$errors['.imgContainer'] = 'Image exceeds maximum size.';
echo json_encode($errors);
//Json response copied from console in FireFox 14.0.1
{"success":false,".imgContainer":"Image exceeds maximum size."}
//Console response for:
console.log(xhr.responseText["success"]);
Undefined
//This should have been true right?
私はjquery 1.8.0を使用しています
//My Jquery
$('.imageForm').live('click', function(e) {
if (!isValid) {
e.preventDefault();
}
else {
var bar = $('.bar');
var percent = $('.percent');
var response = $('.imgHolder');
var status = $('#status');
$('form').ajaxForm({
contentType : "application/json; charset = utf-8",
dataType: "json",
type : "POST",
url : "imgHandle.php",
cache : false,
//target: "#status",
beforeSend: function() {
status.empty();
var percentVal = '0%';
bar.width(percentVal)
percent.html(percentVal);
$(".imgContainer :input").attr("disabled", true);
},
uploadProgress: function(event, position, total, percentComplete) {
var percentVal = percentComplete + '%';
bar.width(percentVal)
percent.html(percentVal);
},
complete: function(xhr) {
console.log(xhr.responseText["success"]);
}
});
}
});
(xhr.responseText["success"]) にアクセスしようとすると undefined になるのはなぜですか? true または false と .imgContainer の値を取得したいと思っていました
たぶん、それをjsonとして解釈していません。どうすればこれを解決できますか?