Передача HTML в JSON - в одном месте работает, в другом - нет
Делаю динамически обновляющиеся страницы, в одном месте все работает нормально:
PHP отдает:
$content = $this->getPage(); // Возвращает HTML код
return '{"success":"1","content":"'.$content.'"}';
JS принимает:
function updatePage() {
$.ajax({
url: '',
data: {type: 'updatePage'},
type: 'POST',
success: function(data){
data = JSON.parse(data);
if (data.success === '1') {
document.getElementById('wind').innerHTML = data.content;
}
},
error: function(){
alert('Ошибка! Пожалуйста, обновите страницу!');
}
});
}
В другом месте делаю аналогично, но JSON ругается на первый же знак < PHP отдает:
$partForm2 = $model->getForm1Part2(); // Возвращает HTML код
return '{
"success":"1",
"partForm2":"'.$partForm2.'"
}';
JS принимает:
if (getCheckedRadioValue('review_type') === '1') {
$.ajax({
url: '',
data: {type: 'check1'},
type: 'POST',
success: function(data){
data = JSON.parse(data);
if (data.success === '1') {
document.getElementById('div2').innerHTML = data.partForm2;
}
},
error: function(){
alert('Ошибка! Пожалуйста, обновите страницу!');
}
});
}
Единственная разница - в первом случае это самописный движок, во втором случае - Yii2 json_encode() и json_decode() нигде не используется. Пробовал обрабатывать html через: $content = json_encode($content); Все равно ругается на < |
Разобрался
Во втором случае, в php затесалась строчка echo, из-за неё были все проблемы. |
| Часовой пояс GMT +3, время: 00:18. |