Отправьте данные JSON, используя $ .post - PullRequest
0 голосов
/ 24 марта 2011

Я пишу приложение jQuery, которое взаимодействует с сервером node.js, поэтому я бы хотел везде распространять JSON.

Похоже, что метод jQuery $.post(url, data, ...) отправляет свои данные в URL-кодированной форме. то есть {foo: true, bar: "baz"} становится foo=true&bar=baz, теряя информацию о типе данных.

Могу ли я получить jQuery для отправки данных в формате JSON? Или мне просто позвонить $.post с предварительно JSON.stringify 'd строкой?

Ответы [ 2 ]

1 голос
/ 24 марта 2011

Короткий ответ: jQuery не сделает это за вас. Вытащил из магазина jQuery:

// convert data if not already a string
if ( s.data && s.processData && typeof s.data !== "string" ) {
    s.data = jQuery.param( s.data, s.traditional );
}

в основном, если данные не являются поступающей строкой, jQuery собирается разобрать их в одну, как вы видите Поэтому, если вы хотите, чтобы JSON отправлялся на сервер, вам придется сделать это самостоятельно. Я бы предложил не использовать JSON.stringify, поскольку он не кросс-браузерный. Вот моя функция "toJSON", если вам интересно: https://gist.github.com/884348

Вы можете всегда связываться с $ .ajax, если хотите. Я сделал это честно.

0 голосов
/ 24 марта 2011

Я считаю, что использование $ .post может быть вашим лучшим выбором.Однако, если вы работаете с Node.js и создаете очень интенсивное JavaScript-приложение, я бы порекомендовал вам проверить Now.js для RPC-вызовов между вашим сервером Node.js и кодом на стороне клиента.

Прекрасный пример создания приложения чата с использованием Now.js и Node.js.Однако я не уверен, как реализованы внутренние компоненты Now.js, если вы очень обеспокоены производительностью на стороне клиента.

Обновление

Вот ссылка на домашнюю страницу Now.js: http://nowjs.com. Используя эту платформу, мы будем тесно взаимодействовать на стороне клиента и на стороне сервера.вместе и без проблем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...