Я пытаюсь выполнить какое-то асинхронное поведение с Dart и PHP. Вот мой код:Как получить данные POST от Dart на PHP асинхронно?
var data = new FormData();
data.append("name", "testing");
var httpRequest = new HttpRequest();
httpRequest
..open('POST', path)
..setRequestHeader('Content-type', 'application/x-www-form-urlencoded')
..onLoadEnd.listen((e) => requestComplete(httpRequest))
..send(data);
path
установлен правильно. Поскольку я выполняю asynch, я не хочу, чтобы на самом деле представлял всю форму, поэтому я попытался создать свой собственный объект FormData и добавить информацию, которая мне нужна. Однако, когда я нахожусь в PHP, $_POST['name']
не установлен. Я подумал, что это был заголовок запроса, но я попытался изменить это, и это не помогло. Единственный способ, которым я получил это работать (установить $_POST['name']
), - это изменить data
на "name=testing"
. Я попытался просмотром необработанных почтовых данных и это приводит:
------WebKitFormBoundaryUfDGArtA6R3ZWVoj Content-Disposition: form-data; name="name" testing------
WebKitFormBoundaryUfDGArtA6R3ZWVoj--
Посылает фактическую форму (без асинхронного) дает правильное поведение, однако. Есть ли другой вариант, кроме строки key = value?
Возможный дубликат [XMLHttpRequest Почтовые данные не отправляются] (http://stackoverflow.com/questions/21181113/xmlhttprequest-post-data-not-being-sent) – Musa
Я пробовал этот ответ вчера среди многих других и ничего работал ... Сегодня я снова вынимаю строку заголовка запроса, и теперь он работает ... Интересно, почему это не сработало, когда я задал тип контента multipart/form-data. Ну что ж. Спасибо, что заставил меня повторить это. – Lathan
Проблема будет границей, если вы установите ее в заголовке типа контента, она должна соответствовать той, которая была создана браузером. – Musa