Ответ 1
Я не знаю, если это все еще проблема, но трюк заключается в том, что ни POST, ни "форма-данные", ни "x-www-url-encoded". Вы должны отправить "сырое" содержимое:
Предположим, что ситуация: http://www.example.com/mymodel
форма-данные
Заголовок может выглядеть следующим образом:
POST /mymodel/create HTTP/1.1
Host: www.example.com
Cache-Control: no-cache
----WebKitFormBoundaryE19zNvXGzXaLvS5C
Content-Disposition: form-data; name="basicModules"
[1,2,3,4]
----WebKitFormBoundaryE19zNvXGzXaLvS5C
результат состоит в том, что строка "[1,2,3,4]"
получает (type-) проверку, которая не работает
х-WWW-URL-закодирован
В этом случае заголовок выглядит примерно так:
POST /mymodel/create HTTP/1.1
Host: www.example.com
Cache-Control: no-cache
Content-Type: application/x-www-form-urlencoded
basicModules=%5B1%2C2%2C3%2C4%5D
который имеет точно такой же результат, как и данные формы. проверка не выполняется из-за того, что basicModules
является строкой "[1,2,3,4]"
сырец
чтобы заставить его работать, заголовок должен выглядеть следующим образом:
POST /mymodel/create HTTP/1.1
Host: www.example.com
Cache-Control: no-cache
{"basicModules":[1,2,3,4]}
который приводит именно к тому, что вы хотите, и работает проверка типа.
поэтому, в конце концов, вы можете заполнить самые сложные модели таким образом в JSON. например.
POST /mymodel/create HTTP/1.1
Host: www.example.com
Cache-Control: no-cache
{"user": {
"name": {
"first":"John",
"last":"Doe"
},
"age":25,
"pets":[{
"name":"Garfield",
"type":"cat"
},
{
"name":"Rudolph",
"type":"reindeer"
}]
}