Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / передача Object через $.GET / 12 сообщений из 12, страница 1 из 1
28.04.2014, 12:45
    #38627645
De
De
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
передача Object через $.GET
Привет, All!

при передаче Object $.get трансформирует его в Array, с чем это связано и как добиться передачи именно объекта, а не массива?
при исполнении подобного кода:
Код: javascript
1.
2.
var params = {'data': {'val1':'aaa','val2':'bbb'} }
$.get(url, params);


получаю запрос вида:
Код: html
1.
?data[val1]=aaa&data[val2]=bbb



если делать тоже самое через AngularJS
то получаю строку:
Код: html
1.
?data={'val1':'aaa','val2':'bbb'}



как добиться ангулярного результата при использовании JQuery ($.get) ?

спасибо
у бэкенда возникают проблемы с Джангой
...
Рейтинг: 0 / 0
28.04.2014, 12:52
    #38627655
Кавказ-сила
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
передача Object через $.GET
Код: javascript
1.
$.get(url + '?data=' + JSON.stringify(params.data));

?
...
Рейтинг: 0 / 0
28.04.2014, 12:53
    #38627657
-k2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
передача Object через $.GET
$.get( url, function( data ){ ... }, "json" );
...
Рейтинг: 0 / 0
28.04.2014, 14:51
    #38627785
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
передача Object через $.GET
DeПривет, All!

при передаче Object $.get трансформирует его в Array, с чем это связано и как добиться передачи именно объекта, а не массива?
при исполнении подобного кода:
Код: javascript
1.
2.
var params = {'data': {'val1':'aaa','val2':'bbb'} }
$.get(url, params);


получаю запрос вида:
Код: html
1.
?data[val1]=aaa&data[val2]=bbb



если делать тоже самое через AngularJS
то получаю строку:
Код: html
1.
?data={'val1':'aaa','val2':'bbb'}



как добиться ангулярного результата при использовании JQuery ($.get) ?

спасибо
у бэкенда возникают проблемы с Джангой

А разве такой json объект не надо раз'json'ивать вручную на сервере? Если надо, то не понимаю зачем такой гемор.
Передавайте как есть (массивом), а на сервере просто делаем $data = (object)$_GET['data']

И получаем тот же объект, только меньшими усилиями и затратами ресурсов (перевести тип для php легче, чем строку парсить).

P.S. В случае если на сервер передаётся объект, атрибутом которого является другой объект - можно сделать рекурсивную функцию перевода типа :). Но я не вижу логичности в таком действе. (мне ни разу не приходилось так делать).
Да и в принципе хэш-массивы полностью заменяют объекты без методов, и объекты я использовал при передаче параметров только для более тщательного контроля данных, ну и ради удобства автодополнения эклипсом (а потому сам создавал объект под данные и перебивал полученные данные в него, а не просто приводил массив к типу объекта).
...
Рейтинг: 0 / 0
28.04.2014, 16:04
    #38627898
De
De
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
передача Object через $.GET
-k2-,
Ваш вариант не отработал

Кавказ-сила,
спасибо, Выбрал Ваш вариант

ПрограмёрА разве такой json объект не надо раз'json'ивать вручную на сервере? Если надо, то не понимаю зачем такой гемор.
Передавайте как есть (массивом), а на сервере просто делаем $data = (object)$_GET['data']

И получаем тот же объект, только меньшими усилиями и затратами ресурсов (перевести тип для php легче, чем строку парсить).


на ПыХе я бы без проблем сделал,
но как такое на Django(Python) сделать?
...
Рейтинг: 0 / 0
28.04.2014, 16:26
    #38627931
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
передача Object через $.GET
De-k2-,
Ваш вариант не отработал

Кавказ-сила,
спасибо, Выбрал Ваш вариант

ПрограмёрА разве такой json объект не надо раз'json'ивать вручную на сервере? Если надо, то не понимаю зачем такой гемор.
Передавайте как есть (массивом), а на сервере просто делаем $data = (object)$_GET['data']

И получаем тот же объект, только меньшими усилиями и затратами ресурсов (перевести тип для php легче, чем строку парсить).


на ПыХе я бы без проблем сделал,
но как такое на Django(Python) сделать?

150 способов... И лёгких... и сложных... на любой вкус (лично мне понравился альтернативный вариант в первом же ответе. не знаю какие возможны минусы) :)
тынц

Единственное, я не понимаю ещё всех особенностей получения переменных из запроса в python/Django, но думаю уж массив целиком получить - проблем не составит... а потом его перекинуть в объект :)
...
Рейтинг: 0 / 0
28.04.2014, 16:41
    #38627962
carrotik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
передача Object через $.GET
De,
...а эта Джанга с POST-запросами работает? .. Если да, то почему бы не переделать в POST? ... там объект передается просто и наглядно (и в фиддлере приятно выглядит) ...
...
Рейтинг: 0 / 0
28.04.2014, 16:52
    #38627979
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
передача Object через $.GET
carrotikDe,
...а эта Джанга с POST-запросами работает? .. Если да, то почему бы не переделать в POST? ... там объект передается просто и наглядно (и в фиддлере приятно выглядит) ...

И как же работает это "просто и наглядно"? )) Чем строка параметров post отличается от строки параметров get? :)
...
Рейтинг: 0 / 0
28.04.2014, 17:02
    #38627995
carrotik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
передача Object через $.GET
ПрограмёрcarrotikDe,
...а эта Джанга с POST-запросами работает? .. Если да, то почему бы не переделать в POST? ... там объект передается просто и наглядно (и в фиддлере приятно выглядит) ...

И как же работает это "просто и наглядно"? )) Чем строка параметров post отличается от строки параметров get? :)

...ну, вот, например, как это выглядит в фиддлере через $.ajax
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
POST http://www4.office/MaterialsApi/api/GetEstims/GetEstims HTTP/1.1
Host: www4.office
Connection: keep-alive
Content-Length: 98
Accept: application/json, text/javascript, */*; q=0.01
Origin: http://www4.office
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 6.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.116 Safari/537.36
Content-Type: application/json; charset=UTF-8
Referer: http://www4.office/Smeta/Smeta.html
Accept-Encoding: gzip,deflate,sdch
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4

{"year":"2014","month":4,"user":"Вера Небелица","nom":"0","site":"0","kontragent":"0"}



..если включить просмотр на вкладке JSON - то данные в виде дерева ...
...
Рейтинг: 0 / 0
28.04.2014, 17:14
    #38628020
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
передача Object через $.GET
carrotikПрограмёрпропущено...


И как же работает это "просто и наглядно"? )) Чем строка параметров post отличается от строки параметров get? :)

...ну, вот, например, как это выглядит в фиддлере через $.ajax
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
POST http://www4.office/MaterialsApi/api/GetEstims/GetEstims HTTP/1.1
Host: www4.office
Connection: keep-alive
Content-Length: 98
Accept: application/json, text/javascript, */*; q=0.01
Origin: http://www4.office
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 6.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.116 Safari/537.36
Content-Type: application/json; charset=UTF-8
Referer: http://www4.office/Smeta/Smeta.html
Accept-Encoding: gzip,deflate,sdch
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4

{"year":"2014","month":4,"user":"Вера Небелица","nom":"0","site":"0","kontragent":"0"}



..если включить просмотр на вкладке JSON - то данные в виде дерева ...

я не о фиддлере спрашивал... а о том, как же передать объект как post параметр так, что бы сервер его автоматом принял как объект :) Я утверждаю, что что бы постом не передавалось, встроенные средства интерпретатора (как php, так и python) не предусматривают превращение параметров в объекты... всё будет или строками или массивами...

P.S. я могу какие-то нюансы django не знать... Но насколько я помню, когда смотрел Django, то видел там приходящие параметры как массив (точнее для питона это словарь).
...
Рейтинг: 0 / 0
28.04.2014, 17:22
    #38628029
carrotik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
передача Object через $.GET
Програмёр
я не о фиддлере спрашивал... а о том, как же передать объект как post параметр так, что бы сервер его автоматом принял как объект :) Я утверждаю, что что бы постом не передавалось, встроенные средства интерпретатора (как php, так и python) не предусматривают превращение параметров в объекты... всё будет или строками или массивами...

P.S. я могу какие-то нюансы django не знать... Но насколько я помню, когда смотрел Django, то видел там приходящие параметры как массив (точнее для питона это словарь).

... так я же тоже совсем не знаю Джангу, у меня ASP.NET WebApi на сервере, а там объект как родной в виде входного параметра без всяких конвертаций ... Вот я и подумал, может в Питоне тоже такое есть ...
...
Рейтинг: 0 / 0
28.04.2014, 17:47
    #38628062
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
передача Object через $.GET
carrotikПрограмёря не о фиддлере спрашивал... а о том, как же передать объект как post параметр так, что бы сервер его автоматом принял как объект :) Я утверждаю, что что бы постом не передавалось, встроенные средства интерпретатора (как php, так и python) не предусматривают превращение параметров в объекты... всё будет или строками или массивами...

P.S. я могу какие-то нюансы django не знать... Но насколько я помню, когда смотрел Django, то видел там приходящие параметры как массив (точнее для питона это словарь).

... так я же тоже совсем не знаю Джангу, у меня ASP.NET WebApi на сервере, а там объект как родной в виде входного параметра без всяких конвертаций ... Вот я и подумал, может в Питоне тоже такое есть ...

ASP.NET - это немного другая тема... Во-первых, типизированный язык (в отличие от пхп и питон). Во-вторых, компилируемый (в отличие от указанных).

По этим причинам там всё совсем иначе.

Например, как я понял, на C# очень сложно создать многомерный хэш-массив. В отличие от php и python они там не так развиты, так как используются намного реже.

вот например тема

Думаю по этой причине для приёма параметров post был выбран вариант парсинга строки не в массив, а в объект (так как второй намного роднее для типизированного языка).
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / передача Object через $.GET / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]