AJAX возвращает JSON с HTML тегами

225
13 марта 2018, 01:23

На сервере есть search.php, который получает поисковый запрос в виде строки и ищет совпадения в .json файлах в отдельной директории и возвращает массив объектов в виде:

[search_result_0, search_result_1, search_result_2, ...]

Но если я пытаюсь отправить на сервер запрос "как " (с пробелом на конце), то сервер возвращает мой json и + html теги непонятного происхождения:

[search_result_0, search_result_1, search_result_2, ...]
<div style="text-align: center;">
    <div style="position:relative; top:0; margin-right:auto;margin-left:auto; z-index:99999">
    </div>
</div>

В самом search.php только одна команда echo. Для подробности вопроса оставлю тело search.php и тело одного из json файлов в котором происходит поиск:

search.php

<?php
if (
    isset($_GET["search_request"]) && 
    !empty($_GET["search_request"])
) {
    $search_results = [];
    $subjects = scandir($_SERVER['DOCUMENT_ROOT'] . "/subjects"); //there are .json files in the folder in which i search the questions.
    for ($i = 0; $i < count($subjects); $i++) {
        $file_name = $subjects[$i];
        if (preg_match("/.json$/", $file_name)) { //continue if it is .json file
            $subject_data = file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/subjects/" . $file_name);
            $subject_data_decoded = json_decode($subject_data);
            for ($a = 0; $a < count($subject_data_decoded); $a++) {
                $question = $subject_data_decoded[$a];
                if (mb_stripos($question[0], $_GET["search_request"]) !== false) {
                    array_push($search_results, [
                        $question[0], //the question
                        $question[1][0] //the first possible answer
                    ]);
                }
            }
        }
    }
    echo json_encode($search_results);
}

subject.json

[
    ["question 1",[
        "answer 1",
        "answer 2",
        "answer 3",
        "answer 4",
        "answer 5"
    ]],
    ["question 2",[
        "answer 1",
        "answer 2",
        "answer 3",
        "answer 4",
        "answer 5"
    ]],
    //...and so on
]

В чем может быть проблема? И почему какие-то конкретные запросы типа "как " заставляют сервер вести себя подобным образом?

READ ALSO
Передать значение в форму

Передать значение в форму

Есть страница категории товаровУ каждого есть ID - product ['id'], название - product['name'], цена - product['price']

254
на сайте нету стилей

на сайте нету стилей

Прошу помощиСделал структуру сайта

179
Цветовая математика в JavaScript

Цветовая математика в JavaScript

Используя Less можно делать операции над цветами, например darken("red",10%)

202
Меню с SVG фильтрами (Goo effect)

Меню с SVG фильтрами (Goo effect)

Есть меню, которое реализовано на HTML/CSSМне пришла идея сделать его совместно с SVGфильтрами, а конкретно с эффектом "вязкости" (Goo) для каждого...

248