Форум программистов, компьютерный форум, киберфорум
1С Битрикс
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.92/25: Рейтинг темы: голосов - 25, средняя оценка - 4.92
0 / 0 / 0
Регистрация: 14.07.2013
Сообщений: 18
1

Не работает ajax запрос

07.06.2018, 15:28. Просмотров 4934. Ответов 4
Метки нет (Все метки)

Приветствую!
Помогите кто может. Ситуация такая внезапно на сайте перестал работать аякс запрос. Никаких правок никто не вносил , а функционал перестал работать.
Вот яваскрипт который отправляет запрос на сервер

Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
(function($, BX){
    $(function(){
      //
        var UrlPAth = $('.order_step_1').data('url');
        console.log(UrlPAth);
        console.log(UrlPAth+"?sessid="+BX.bitrix_sessid()
        
        );
        $('.order_step_1').on('click', function(e) {
            e.preventDefault();
            var $form = $(this).closest('.form_block'),
                $rooms= $form.find('.rooms_set').val(),
                $bath_rooms= $form.find('.bathroom_set').val();
            
            $.ajax({
                type: "POST",
                dataType: "json",
                url: UrlPAth+"?sessid="+BX.bitrix_sessid(),
                data: {
                    "sessid": BX.bitrix_sessid(),
                    'room':$rooms,
                    'bathroom':$bath_rooms,
                    //"id": $item
                },
                beforeSend: function() {
                    console.log('beforeSend -step 1');
                },
                success: function(j) {                     
                    if (j.status) {
                         if(j.loc) window.location.href=j.loc;
                    }
                },
                complete: function(j) {
                    console.log('complete -step 1');
                },
                error: function( jqXHR,textStatus, errorThrown) {
                    console.log(textStatus);
                    console.log(errorThrown);
                }
            });
        });
    });
})($, BX);

вот скрипт на стороне сервера который вызывается пхп:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?
require_once($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/prolog_before.php'); // include  bitrix prolog (clasess)
define("STOP_STATISTICS", true); // disable statisti
$module_id = "modul";
use Bitrix\Main\Application;
use Bitrix\Main\Loader;
use Webvision\Directory;
 
$request = Application::getInstance()->getContext()->getRequest();
$PostRoom = intval(
$request->getPost("room"));
$PostBathRoom = intval($request->getPost("bathroom"));
$result = array('status' => "N");
 
if (check_bitrix_sessid() && $PostBathRoom > 0 && $PostRoom > 0 && Loader::includeModule($module_id)) {
    /*function valudate params post*/
    if (Directory\Options::CheckRoom_Bath($PostRoom, $PostBathRoom)) {
 
        Directory\Order::SetBaseRooms($PostRoom, $PostBathRoom);
        $result['status'] = "Y";
        $result['loc'] = Directory\Main::$orderDir;
    }
 
}
echo json_encode($result);
В итоге в консоле ошибка
parsererror
Код
script.js?15283150221521:41 SyntaxError: Unexpected end of JSON input
    at JSON.parse (<anonymous>)
    at m.parseJSON (jquery.js:8520)
    at Pb (jquery.js:8846)
    at x (jquery.js:9264)
    at XMLHttpRequest.b (jquery.js:9718)
ошибка парсера джсон.
Пробовал принамть текст ответ приходит но выводится пустая строка.
Теперь самое интересное если в пхп коде убрать вызов пролога и всех остальных функций битрикс , тоесть оставить просто echo("string") , то ответ приходит.
Может кто знает в чем проблема уже всю голову сломал.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.06.2018, 15:28
Ответы с готовыми решениями:

Не работает ajax запрос
Всем привет! Никак не получается вызвать ajax запрос. В js скрипте вызываю функцию: ...

Новичок ajax запрос!
По клику выполяю запрос, но пхп код не выполняется, что делать??? вот сам запрос $(&quot;#go...

Делаю ajax запрос, хочу создать элемент инфоблока
К сожалению в Битриксе я не работал до этого. В задаче нужно было создать скрипт который добавляет...

Не работает Ajax-запрос
Добрый день. Подскажите пожалуйста, не работает Ajax-запрос. Работаю с Visual Studio 2013 update...

4
1217 / 850 / 184
Регистрация: 16.03.2008
Сообщений: 4,046
Записей в блоге: 1
07.06.2018, 23:10 2
Ну так, а вы сам ответ смотрели в инструментах разработчика браузера?
Наверняка там кроме json идет еще какой то мусор. (и лучше посмотреть - там может быть сообщение об ошибке)

А после этого:
вместо 25 строки приведенного листинга:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
// очищаем весь вывод что было до
$APPLICATION->RestartBuffer();
 
//вывод JSON
echo json_encode($result);
 
 
// далее две строки нужны если ставили в процессе cookie
$response = Bitrix\Main\Context::getCurrent()->getResponse();
$response->flush();
//далее обеспечиваем, чтобы после точно не было ни какого вывода
die();
1
0 / 0 / 0
Регистрация: 14.07.2013
Сообщений: 18
13.06.2018, 17:03  [ТС] 3
Подскажите не разумному. Какую утилиту использовать для просмотра ответа сервера. Я смотрел через гугл хром но там я так понял только заголовки.
Еще момент что как раз когда в коде не испольуется функция сброса буфера ответ приходит нормально.Я вот закоментировал вызов буфера в ядре системы и код заработал. Это не ришение конечно
0
1217 / 850 / 184
Регистрация: 16.03.2008
Сообщений: 4,046
Записей в блоге: 1
14.06.2018, 14:45 4
Цитата Сообщение от jakobx86 Посмотреть сообщение
Я смотрел через гугл хром но там я так понял только заголовки.
Смотрите внимательнее там есть вкладки Headers,Preview, Reponse...
0
8 / 16 / 2
Регистрация: 15.06.2015
Сообщений: 240
19.06.2018, 08:56 5
Может глупый и очевидный совет, но почистите полностью кеш сайта, в настройках "автокеширования"... У меня было много проблем непонятных пока не нашел эту функцию. Сброс кеша стандартной кнопкой в битриксе часто не помогает...хз почему.

script.js?15283150221521:41 - вот это у вас закешированный файл.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.06.2018, 08:56

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Не работает ajax запрос
Вот код: _url = &quot;'http://www.my-portfolio.name/ad/engine/getRequest.php&quot;; makeRequest(_url); ...

Не работает ajax запрос
Приветствую подскажите в чем ошибка &lt;html&gt; &lt;head&gt; &lt;script...

Не работает запрос ajax
&lt;?php include('logical_pr.php'); if(isset($_GET)){ $begin = $_GET; $end = $_GET; }...

Не работает Ajax запрос
&lt;?php require &quot;db.php&quot;; ?&gt; &lt;?php if(isset($_SESSION)): ?&gt; &lt;p&gt;Добро пожаловать &lt;?php echo...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.