Передача 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, время: 02:32. |