responseText - это XHR, который говорит: «Чем сервер отвечает на запрос, за исключением заголовков HTTP».
Вполне нормально включать полный HTML-документ, если вы обращаетесь к ресурсу, предназначенному для ответа на регулярную отправку формы.
Похоже, вам нужно быть более умным в отношении того, с чем сервер отвечает.
Этот простой пример (написанный на Perl, см. Ссылку для большего контекста) проверяет параметр строки запроса, чтобы решить, следует ли ему поместить полученные данные в шаблон HTML и вернуть их, или преобразовать данные в JSON и вернуть их вместо этого.
if ($view eq "json") {
my $data = $json->convert_blessed->encode($vars);
print $q->header('application/json;charset=utf-8'), $data;
return;
}
my $output;
$tt->process('html.tt', $vars, \$output)
|| die $tt->error(), "\n";
print $q->header('text/html;charset=utf-8'), $output;