ghaiklor
Новичок
Привет всем.
Столкнулся с проблемой такого характера. Скриптом генерирую JSON-строку на сервере. Этот скрипт пинаю AJAХ-запросом. Запрос выполняется, в файрбаге вижу ответ от скрипта - эту самую JSON-строку. Эту строку проверяю на валидаторе - все верно сформировалось. Но на ответе AJAX-запроса срабатывает onError с ошибкой "parse error: Syntax Error: JSON parse: bad control character in string literal".
Перегуглил уже кучу страниц, испробовал кучу методов, но все остается таким же.
В чем может быть проблема?
Функция, которая составляет запрос AJAX и парсит данные.
	
	
	
		
Сам скрипт на сервере, который генерит JSON-строку
	
	
	
		
								Столкнулся с проблемой такого характера. Скриптом генерирую JSON-строку на сервере. Этот скрипт пинаю AJAХ-запросом. Запрос выполняется, в файрбаге вижу ответ от скрипта - эту самую JSON-строку. Эту строку проверяю на валидаторе - все верно сформировалось. Но на ответе AJAX-запроса срабатывает onError с ошибкой "parse error: Syntax Error: JSON parse: bad control character in string literal".
Перегуглил уже кучу страниц, испробовал кучу методов, но все остается таким же.
В чем может быть проблема?
Функция, которая составляет запрос AJAX и парсит данные.
		PHP:
	
	function T_addElementsMonitoring() {
    function onLoaded(data)
    {
        data = jQuery.parseJSON(data);
        var monitoring_units_target_tbody = document.getElementById('monitoring_units_target').getElementsByTagName('tbody')[0]; //считываем блок tbody
        T_clearElementsMonitoring(); //очищаем таблицу от данных
        var i = 0;
        while (i < data.length) {
            var tr = document.createElement('TR'); //создаем дочерний элемент для вставки в таблицу
            var T_testString = "/*здесь идет HTML-разметка*/";
            tr.innerHTML = T_testString;
            monitoring_units_target_tbody.appendChild(tr); //добавить чилда в блок tbody
            i++; 
        }    
    }
    
    function onError(xmlHttpRequest, textStatus, errorThrown) {
        if(xmlHttpRequest.readyState == 0 || xmlHttpRequest.status == 0) {
            return;
        } else {
            ajaxerrmess("Error: " + textStatus + ' ' + errorThrown);
        }
    }
    
    $.ajax({
        type: 'GET',
        data: {
            type: 1
        },
        url: "ajx/db_getData.php",
        dataType: 'json',
        success: onLoaded,
        error: onError,
        cache: false
    })
}
		PHP:
	
	<?php
session_start();
require ('../inc/config.php');
$user = '';
$pass = '';
$host = '';
$core = '';
$json_string = array();
try {
    mysql_connect($host, $user, $pass);
    @mysql_select_db($core) or die("Can't select database");
} catch (Exception $e) {
    die("Can't connect: " . $e->getMessage());
}
try {
    $query = "SELECT * FROM CarsOnlineData";
    $result = mysql_query($query);
    $num = mysql_num_rows($result);
    mysql_close();
    $i = 0;
    while ($i < $num) {
        $id = mysql_result($result, $i, "id");
        $carId = mysql_result($result, $i, "carID");
        $carLatitude = mysql_result($result, $i, "CarLatitude");
        $carLongitude = mysql_result($result, $i, "CarLongitude");
        $carCourse = mysql_result($result, $i, "CarCourse");
        $carSpeed = mysql_result($result, $i, "CarSpeed");
        $carParkTime = mysql_result($result, $i, "CarParkTime");
        $json_string[$i]['id'] = $id;
        $json_string[$i]['carId'] = $carId;
        $json_string[$i]['carLatitude'] = $carLatitude;
        $json_string[$i]['carLongitude'] = $carLongitude;
        $json_string[$i]['carCourse'] = $carCourse;
        $json_string[$i]['carSpeed'] = $carSpeed;
        $json_string[$i]['carParkTime'] = $carParkTime;
        $i++;
    }
} catch (Exception $e) {
    die("Can't get data: " . $e->getMessage());
}
if (!function_exists('json_encode')) {
    function json_encode($data) {
        switch ($type = gettype($data)) {
            case 'NULL':
                return 'null';
            case 'boolean':
                return ($data ? 'true' : 'false');
            case 'integer':
            case 'double':
            case 'float':
                return $data;
            case 'string':
                return '"' . addslashes($data) . '"';
            case 'object':
                $data = get_object_vars($data);
            case 'array':
                $output_index_count = 0;
                $output_indexed = array();
                $output_associative = array();
                foreach ($data as $key => $value) {
                    $output_indexed[] = json_encode($value);
                    $output_associative[] = json_encode($key) . ':' . json_encode($value);
                    if ($output_index_count !== NULL && $output_index_count++ !== $key) {
                        $output_index_count = NULL;
                    }
                }
                if ($output_index_count !== NULL) {
                    return '[' . implode(',', $output_indexed) . ']';
                } else {
                    return '{' . implode(',', $output_associative) . '}';
                }
            default:
                return ''; // Not supported
        }
    }
}
echo json_encode($json_string);
?> 
	            
 
 
		 
 
		