Как решить проблему с json преобразованием в объект?

Проблема заключается в том, что я отправляю на сервер данные, сервер выполняет некие действие и отправляет на клиент ответ, все ничего, ну на клиент то json то доходит, ну при попытке преобразования с использованием $.parseJSON() выводит ошибку. И еще, прикол в том что на локалке все пашет отлично, а залил на хостинг, появилась такая ошибка:
"
XHR finished loading: POST "..../vote/set_vote". jquery.js:4

{"response_text":"\u0412\u0430\u0448 \u0433\u043e\u043b\u043e\u0441 \u0443\u0441\u043f\u0456\u0448\u043d\u043e \u0434\u043e\u0434\u0430\u043d\u0438\u0439","response_status ":"100"} common.js:129

Uncaught SyntaxError: Unexpected token
"
Код клиента:
$.post(
            url + "/vote/set_vote",
            {id_answer:id},
            function(data){
                console.log(data);
                var json = JSON.parse(data);
                $('#area_vote').html("<h3 align='center'>"+json.response_text+"</h3>");
                switch(json.response_status){
                    case '100':{
                        $('#area_vote').attr("id","area_answer");
                        setTimeout(build_block_vote(),3000);

                    }
                        break;

                    case '101':{

                    }
                        break;

                }
}

Серверный скрипт
setcookie("ses_vote","1",0x6FFFFFFF);

            $query = "Запрос";
            $q = mysql_query($query) or die(mysql_error());


            if($q){
                return json_encode(array(
                    "response_text"=>"Все отлично",
                    "response_status"=>"100"
                ));
            }
            else{
                return json_encode(array(
                    "response_text"=>"Случилась ошибка",
                    "response_status"=>"101"
                ));
            }
  • Вопрос задан
  • 3687 просмотров
Пригласить эксперта
Ответы на вопрос 5
ZOTTCE
@ZOTTCE
Адрес сервера и адрес сайта, с которого выполняется запрос, одинаковы?
Если нет, то используйте JSON-P
Ответ написан
mlnkv
@mlnkv
JavaScript Developer
Скорее всего, вы пытаетесь распарсить готовый объект. Когда приходит запрос от сервера, jquery сам парсит json, если от сервера приходит json данные

$.post(url + "/vote/set_vote", {id_answer:id}, function(response) {
  console.log(response);
});


Посмотрите, что выведет в консоль
Ответ написан
rdifb0
@rdifb0
Программист, реалист
У вас там явно лишние непечатные символы. Посмотрите в отладчике на переменную, может быть виднее будет.
Ответ написан
drugoi
@drugoi
Front-end Developer
А какой dataType присылает сервер?
Ответ написан
ZOTTCE
@ZOTTCE
Исправляйте проблемы с кодировкой. Проблема ошибочного парсинга данных именно в этом.
И еще браузер находит ошибки в HTML коде страницы.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы