У меня есть код PHP для загрузки файлов, который отлично работает, и в качестве окончательного результата я отправил ответ JSON с статусом загрузки, который я не могу получить.Отправка данных состояния через ответ JSON на POST - анализ через JavaScript
После загрузки файла (POST) мой ответ выглядит следующим образом:
{"html_content":"<p>File was uploaded<\/p>"}
PHP загрузчик код выглядит следующим образом:
if (!is_file($targetFile)) {
move_uploaded_file($tempFile,$targetFile);
$html_content="<p>File was uploaded</p>";
}
else {
$html_content="<p>You have uploaded duplicate.</p>";
move_uploaded_file($tempFile,$targetFile);
}
$json_array=array('html_content'=>$html_content);
header('Content-type: text/json');
header('Content-type: application/json');
echo json_encode($json_array);
и JavaScript основного кода, чтобы на дисплее появляется сообщение:
this.on("success", function(file,responseText) {
$.ajax({
dataType: 'json',
success: function (response) {
var htmlElement = document.createElement("div");
htmlElement.setAttribute("class","success-message");
var responseText = response.html_content;
var messageText = document.createTextNode(responseText);
htmlElement.appendChild(messageText);
file.previewTemplate.appendChild(htmlElement);
console.log(response.html_content);
}
});
});
Когда я развожу выше JS из части AJAX и задаю переменную responseText
как stat ic все работает нормально.
Кроме того, когда я не буду использовать AJAX и только выход console.log(responseText);
я получаю это в консоли:
Object {html_content: "<p>File was uploaded</p>"}
Любой ключ, что я пропустил в моем случае?
Интересно, если определение заголовка Content-type дважды в php приводит к тому, что браузер не выполняет синтаксический анализ данных. –