jQuery опускает значения даты в params () и ajax () - PullRequest
5 голосов
/ 14 февраля 2012

У меня есть простой объект Javascript, подобный этому:

var data = { date: new Date(), plainText: "test" };

когда я использую $.params(data) для построения строки запроса, я получаю это:

plainText=test

Между тем значение date опущено.

Аналогично, когда я использую $.ajax(), значение date также отсутствует.

Есть ли способ заставить jQuery включить значение даты в качестве параметра?

date.toString() или date.toJSON() обо мне будет хорошо.

Ответы [ 4 ]

1 голос
/ 16 февраля 2012

Универсальный плагин jQuery для повторного использования

Этот мой плагин позволяет легко подготовить сложные объекты JSON для публикации на сервере. Он также заботится о датах. И это работает независимо от того, поддерживает ли браузер функции JSON или нет. И расширение для преобразования обратно в даты при получении данных с сервера.

Отправка на сервер

Ссылка на мой блог с подробной информацией и кодом, который вы можете свободно использовать. Этот плагин можно использовать для отправки данных на сервер.

Получение с сервера

Есть еще одно расширение jQuery на этот раз , которое также обеспечивает автоматическое преобразование даты при возврате данных с сервера на клиент. Я расширил parseJSON функцию, чтобы заботиться о преобразовании даты (преобразование необязательно, но код можно изменить, чтобы всегда заботиться о датах). Он может конвертировать даты ISO, а также даты, закодированные в Asp.net, в экземпляры Javascript Date.

1 голос
/ 14 февраля 2012

Вы должны сделать

 var data = { date: (new Date()).toJSON(), plainText: "test" };

Это приводит к чему-то вроде

{ date="2012-02-14T15:08:04.110Z", plainText="test"}

Посмотрите на скрипку http://jsfiddle.net/Vj3n7/

1 голос
/ 14 февраля 2012

$.params(data, true) преобразует дату .toString(), и она появится в результате, но вы действительно хотите текстовое представление даты? Нет единого стандарта для преобразования дат в строки запроса, просто выберите нужный формат и преобразуйте свою дату в нее перед отправкой на сервер ...

Или преобразовать в JSON.

1 голос
/ 14 февраля 2012

Использование JSON.stringify(new Date()).

var data = { date: JSON.stringify(new Date()), plainText: "test" };

Примечание: эта часть времени также будет получена из даты.

Библиотека JSON изначально поддерживается во всех браузерах, но для браузеров, которые ее не поддерживают, вы можете включить этот файл js http://ajax.cdnjs.com/ajax/libs/json2/20110223/json2.js

Вы также можете использовать (new Date()).toJSON().

var data = { date: (new Date()).toJSON(), plainText: "test" };

Если вы просто хотите, чтобы часть даты была отправлена, вы можете использовать это.

var date = new Date();
//change the format as per your need, this is in mm/dd/yyyy format
date = (date.getMonth() + 1) + "/" + date.getDate() + "/" + date.getFullYear();

var data = { date: date, plainText: "test" };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...