Redirect 404 и AJAX

157
01 февраля 2020, 21:20

На локальной машине (Win7 x64) имеется Apache (2.4.35) c PHP (7.2.10). B Apache в настройке виртуальных хостов сделано:

<VirtualHost *:80>
    DocumentRoot ${WWWDIR}/test
    ServerAdmin admin@localhost
    ServerName test.home
    ErrorLog ${LOGDIR}/test/error.log
    CustomLog ${LOGDIR}/test/access.log combined
    <Directory ${WWWDIR}/test>
        Options Indexes FollowSymLinks
        AllowOverride All
        AddDefaultCharset UTF-8
        DirectoryIndex index.php
        ErrorDocument 500 /
        ErrorDocument 404 /
        ErrorDocument 403 /
        ErrorDocument 402 /
        ErrorDocument 401 /
        ErrorDocument 400 /
        Require local
        <IfModule mod_php7.c>
            php_admin_value upload_tmp_dir ${TMPDIR}
            php_admin_value session.save_path ${SESSDIR}/test
            php_admin_flag allow_url_include off
            php_admin_flag enable_dl off
            php_value magic_quotes_gpc on
            php_flag register_globals off
            php_value error_reporting "E_ALL"
            php_flag display_errors On
        </IfModule>   
    </Directory>
</VirtualHost>

В папке "test" лежит index.php, в котором в зависимости от запрошенной страницы формируется массив и выдает в виде JSON:

<?php
    header('Cache-Control: no-cache');
    header('Access-Control-Allow-Origin: *');
    header('Content-Type: application/json');
    $responce = array();
    // ... parse $_SERVER[REQUEST_URI] and create data array ...
    $responce = json_encode($responce);
    if($responce !== false){
        http_response_code(200);
        echo $responce;
    }
?>

Если обращаться к нему через браузер (к примеру, "http://test.home/" или "http://test.home/query/test", то в браузере отображается результат (строка JSON).

Если же обратиться к нему из jQuery:

$.getJSON('http://test.home/query/test',function(data){
    $('#data').html(data.content);
});

То сервер присылает "пустышку", т.е. в Хроме в панельке, открывающейся по F12 ("Инструменты разработчика" вроде называется) видно, что сервер сначала присылает 280 байт заголовков, затем 0 байт содержимого. Сами заголовки запроса/ответа:

General:
    Request URL: http://test.home/query/test
    Request Method: GET
    Status Code: 200 OK
    Remote Address: 127.0.0.1:80
    Referrer Policy: no-referrer-when-downgrade
Responce headers:
    Cache-Control: no-cache
    Connection: Keep-Alive
    Content-Length: 0
    Content-Type: text/html; charset=UTF-8
    Date: Thu, 18 Apr 2019 20:03:30 GMT
    Keep-Alive: timeout=5, max=100
    Pragma: no-cache
    Server: Apache/2.4.35 (Win64) PHP/7.2.10
    X-Powered-By: PHP/7.2.10
Request headers:
    Accept: application/json, text/javascript, */*; q=0.01
    DNT: 1
    Origin: null
    User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.96 Safari/537.36

Собственно, вопрос: как заставить его выдавать JSON-массив при AJAX-запросе?

READ ALSO
Дублируются изображения laravel

Дублируются изображения laravel

В базе есть url изображенийСкрипт должен перебирать, загружать каждое на сервер в 3 папки: основная, копия, копия меньшего размера

150
Помогите правильно написать echo

Помогите правильно написать echo

Помогите правильно написать echoВыдает ", когда должно было написать Подробнее/Заказать

182
Заполнение таблицы из ajax-запроса

Заполнение таблицы из ajax-запроса

Работаю через MVC PHP Framework и мне нужно записывать данные из формы в таблицу БДДанные записываются, но также в эту же таблицу мне нужно загружать...

177
Как добавить еще таблицы в SQL PHP

Как добавить еще таблицы в SQL PHP

У меня есть 4 таблицы (iphones,mac,ipad,watch)Как можно их объединить в данном коде?

182