Symfony 2 JSON запрос от титана XHR

У меня есть запрос xhr post от клиента Titanium к серверу symfony2. делал это много раз, но этот, не может получить параметр post, который мне нужно обработать в коде.

мой метод конструкции (или его часть) выглядит следующим образом

public function __construct() {
$this->request = Request::createFromGlobals();
}

так, в любое время в действиях моего контроллера, когда я var_dump $this->request->request->getContent();
Я получаю в качестве вывода

string(43) "id=9&token=d41d8cd98f00b204e9800998ecf8427e"

но я не знаю почему, когда я пытаюсь получить доступ $this->request->get('token') Я получил ноль

это параметры запроса после инициализации

object(Symfony\Component\HttpFoundation\ParameterBag)#83 (1) {
["parameters":protected]=>
array(0) {
}
}

и мешок параметров заголовка запроса

object(Symfony\Component\HttpFoundation\HeaderBag)#79 (2) {
["headers":protected]=>
array(12) {
["connection"]=>
array(1) {
[0]=>
string(5) "close"}
["cache-control"]=>
array(1) {
[0]=>
string(13) "max-age=43200"}
["host"]=>
array(1) {
[0]=>
string(19) "free.domain.com"}
["user-agent"]=>
array(1) {
[0]=>
string(59) "Appcelerator Titanium/3.5.0 (iPhone/7.1; iPhone OS; it_IT;)"}
["cookie"]=>
array(1) {
[0]=>
string(36) "PHPSESSID=saohjtso3767nohqfe0knd8ca6"}
["accept-encoding"]=>
array(1) {
[0]=>
string(13) "gzip, deflate"}
["accept-language"]=>
array(1) {
[0]=>
string(5) "it-it"}
["content-length"]=>
array(1) {
[0]=>
string(2) "43"}
["content-type"]=>
array(1) {
[0]=>
string(48) "application/x-www-form-urlencoded; charset=utf-8"}
["accept"]=>
array(1) {
[0]=>
string(3) "*/*"}
["x-requested-with"]=>
array(1) {
[0]=>
string(14) "XMLHttpRequest"}
["x-titanium-id"]=>
array(1) {
[0]=>
string(36) "e46d43b1-9136-41b2-93da-6b1d5b3c4580"}
}
["cacheControl":protected]=>
array(1) {
["max-age"]=>
string(5) "43200"}
}

пс.
сторона титана я посылаю мой запрос JSON, как следует

xhr.open("POST", url,true);
xhr.send(data);

но когда я иду

xhr.send(JSON.stringify(data));

на стороне сервера, я могу получить доступ к $this->request->get('token') без каких-либо проблем

моя проблема в том, что я хочу (всегда делал), чтобы отправить данные не как JSON.stringify(data) потому что я хочу также отправить BLOB-файлы (изображения).

имп.
на всякий случай, если мне не нужно отправлять изображения с мобильного телефона, я могу расположить свой серверный скрипт следующим образом:

$data = json_decode($this->request->getContent(), true);
$this->request->request->replace(is_array($data) ? $data : array());

но не работает с файлами.

0

Решение

Я был неправ по поводу того, что изображение, отправленное титановым клиентом xhr, не будет работать. Фактический уход

$data = json_decode($this->request->getContent(), true);
$this->request->request->replace(is_array($data) ? $data : array());

сторона symfony2, позвольте мне получить $this->request->file('image') но мне не нужно JSON.stringify(data) когда я отправляю титановую сторону. надеюсь, это кому-нибудь поможет

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]