За последние 24 часа нас посетил 15801 программист и 1541 робот. Сейчас ищут 738 программистов ...

Передать JSON из клиента на сервер - как?

Тема в разделе "JavaScript и AJAX", создана пользователем Ptica, 21 сен 2010.

  1. Ptica

    Ptica Активный пользователь

    С нами с:
    21 сен 2010
    Сообщения:
    3
    Симпатии:
    0
    Добрый день!
    Это не совсем по JS вопрос, но специалисты по JSONу должны водиться здесь. :)
    Не так давно у меня была задача - работать из PHP скрипта с удаленным веб-сервером. Клиент посылал на сервер запрос POST и передавал параметры запроса в полях формы. В ответ сервер присылал JSON. С этим я справился. Запрос на сервер я посылал через объект класса HttpRequest. (Именно из РНР, а не AJAXом из javascripta). Теперь встала новая задача, в которой параметры запроса надо передавать не в полях формы, а как json-строку. Сформировать сам JSON - это не проблема, а вот как его передать через тот же HttpRequest?
    Рылся в Гугле, но нашел только инфу как обработать JSON, пришедший от сервера, либо как послать JSON через AJAX. А как правильно сделать связку PHP-клиент-сервер, пока не пойму.
    Буду благодарен за подсказку.
     
  2. Апельсин

    Апельсин Активный пользователь

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
    В библиотеках jsHttpRequest и jQuery - там можно при создании запроса указывать объект в виде {any:'value'} в качестве параметра. На сервере эти пары будут выглядеть как $_POST['any'] = 'value';, если выбрать ПОСТ-передачу конечно.
    Должно быть и нативе, без библиотек такое же походу.
     
  3. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    jQuery addon
    При посте делать encodeURI нет необходимости, а при гете:

    json = $.toJSON(object)
    'http://www.site.com/response.php?json=' + encodeURIComponent(json);
     
  4. Ptica

    Ptica Активный пользователь

    С нами с:
    21 сен 2010
    Сообщения:
    3
    Симпатии:
    0
    Спасибо всем ответившим!
    Суть в чем: есть сторонний веб-сервис. В мануале к нему написано ровно вот столько:
    Далее описывается структура этого единственного объекта.
    Поскольку ничего не говорится, ожидает ли сервер получить данные через ПОСТ или через ГЕТ, я подумал, что возможно, есть какой-то очевидный общепринятый способ, как вести себя в подобных случаях. А я просто о нем не знаю :) Дай, думаю, спрошу.
    Видать, придется как-то списываться с разработчиками и вытряхивать из них все тайны.
    З.Ы. Вообще-то в стартовом посте говорилось "Именно из РНР, а не AJAXом из javascripta". Я к тому, что jQuery здесь не совсем в тему :)
     
  5. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    Судя по этой фразе, нужно было передавать из браузера на сервер.
    а оказывается нужно из пхп отправлять JSON строку на другой сервер?
    наверно curl может помочь, нужно почитать маны.
     
  6. Ptica

    Ptica Активный пользователь

    С нами с:
    21 сен 2010
    Сообщения:
    3
    Симпатии:
    0
    Спасибо!
    JSON строку на другой сервер. Точно. :)
    Как немного разгребусь с другими задачами, пойду изучать curl.