Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 19.07.2016, 12:15
Аспирант
Отправить личное сообщение для Benos Посмотреть профиль Найти все сообщения от Benos
 
Регистрация: 09.01.2012
Сообщений: 48

та же беда...
не могу сформировать тело JSON запроса.

Вот тело которое посылает броузер
{"controller":"cache","action":"get","params":{"ID":["List:"]},"session":"c10397b9cca89880ad6e"}


через JS собираю тело:
body = { controller: "cache", action: "get", params: { ID: ["List:"]}, session: sesID }; // sesID переменная в которой ID текущей сессии


Вот что уходит в консоле FF на мой запрос
{"controller":"cache","action":"get","params":{"ID":["List:"]},"session":"c10397b9cca89880ad6e"}


но на мой запрос приходит ошибка:
error: Object
type:"internalException"
number: 0
message: "Internal Error"


Если посылать запрос без параметров "params":{}
то запросы уходя и приходят нормально.

Так же пробовал:
body = {};
    body.controller = "cache";
    body.action = "get";
    body.params = {};
    body.params.ID = [];
    body.params.ID[0] = "List:"; // тут должно быть много элементов, но пока прорабатываю с одним.
    body.session = sesID;


Тело такое же...
{"controller":"cache","action":"get","params":{"ID":["List:"]},"session":"c10397b9cca89880ad6e"}

и ответ с ошибкой

Подозреваю, что вся беда в формировании массива параметров...
Подскажите в чем может быть беда?

Последний раз редактировалось Benos, 19.07.2016 в 12:20.
Ответить с цитированием
  #12 (permalink)  
Старый 19.07.2016, 12:39
Аспирант
Отправить личное сообщение для Spass Посмотреть профиль Найти все сообщения от Spass
 
Регистрация: 14.07.2016
Сообщений: 86

Вы уверены что отправляете json-строку а не объект?
JSON.stringify() используете?
Ответить с цитированием
  #13 (permalink)  
Старый 19.07.2016, 13:17
Аспирант
Отправить личное сообщение для Benos Посмотреть профиль Найти все сообщения от Benos
 
Регистрация: 09.01.2012
Сообщений: 48

Spass,
да. перевожу в строку.
вот функция отсылки запроса...
function sendJSON(){
    console.info("Запрос пошел!");
    var date = new Date();
    var timeTMP = date.getTime();
    var url = urlTMP+date.getTime();   // линк запроса
    var dataJSON = JSON.stringify(body);  // {} JSON запроса
    console.info("Параметры JSON: URL => "+url+" / Объект => "+dataJSON);
    var xhr = new XMLHttpRequest();
        xhr.open("POST", url , true);
        xhr.setRequestHeader('Accept', 'application/json, text/plain, */*');
        xhr.setRequestHeader('Content-Type', 'application/json;charset=utf-8');
        xhr.send(dataJSON);
        xhr.onload = function(){
              if(xhr.readyState == 4){
                  console.info("Ответ получен!");
                  anwJSON = xhr.responseText;
                  anwJSON = JSON.parse(anwJSON);
                  anwJSON = anwJSON.cache; // масив {} из ответа
                  readJSON();  // функция разбора
              }
        }   
}
Ответить с цитированием
  #14 (permalink)  
Старый 19.07.2016, 13:46
Аспирант
Отправить личное сообщение для Benos Посмотреть профиль Найти все сообщения от Benos
 
Регистрация: 09.01.2012
Сообщений: 48

единственное в чем вижу разницу между запросом браузера и моим через JS это "Content-Length"
У броузера на 1 больше... почему не знаю.
Ответить с цитированием
  #15 (permalink)  
Старый 19.07.2016, 14:06
Аспирант
Отправить личное сообщение для Benos Посмотреть профиль Найти все сообщения от Benos
 
Регистрация: 09.01.2012
Сообщений: 48

вопрос отпал...
я пробел потерял в теле
Ответить с цитированием
  #16 (permalink)  
Старый 19.07.2016, 15:23
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Все что присылает сервер идет через JSON.parse, все что посылается на сервер идет через JSON.stringify, на сервере соотв json_encode() & json_decode() если php там. Не надо собирать такие тексты вручную. Что касается транспозинга массивов - просто выводите их почаще в консоль, чтобы научится понимать структуру через графическое представление.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
JSON основы вопросы mycoding Общие вопросы Javascript 9 12.04.2010 19:59
не работает JSON в JQuery 1.4.1 mcpro jQuery 7 22.03.2010 17:56
Jquery, Dynatree и JSON antirek jQuery 6 01.09.2009 15:00
Что выбрать XML или JSON для передачи Ajax - ом из PHP в JS Gozar Общие вопросы Javascript 20 16.08.2009 23:36
treeview и JSON PANKOFF jQuery 2 21.05.2009 14:46