Поэтому я пытаюсь установить связь между dart clientside и php-сервером с помощью AJAX. Поскольку прямое выполнение невозможно. Я скомпилировал дротик в javascript, а затем запустил его на сервере Apache.
Данные json генерируются на стороне клиента, но на сервере нет ответа
код дротика
import 'dart:html'; import 'dart:json'; void main() { query("#clicker").on.click.add(callServer); } void callServer(Event event) { var data ={ 'name':"sendname"} ,jsondata=stringify(data); print(jsondata); var req = new HttpRequest(); req.open('post','http://localhost:8080/darttest/server.php',true); //req.setRequestHeader('Content-type','application/json'); req.send(jsondata); print(req.responseText); }
php side i просто отсылаю полученный контент
<?php $name = $_POST['name']; echo $name; ?>
Это моя первая попытка программирования дротиков, поэтому дайте мне знать, возможен ли такой подход
Чтобы прочитать ответ, вы должны поместить свой код в callback на readyStateChange
:
var req = new HttpRequest(); req.open('post','http://localhost:8080/darttest/server.php',true); req.on.readyStateChange.add((e){ if (req.readyState == HttpRequest.DONE && req.status == 200){ print(req.responseText); } }); req.send(jsondata);
С вашим кодом запрос http не обрабатывался, когда вы пытались прочитать ответ. Вы должны дождаться завершения запроса, чтобы прочитать ответ.
Является localhost: 8080, обслуживающим как статический Dart (как JS), так и php? В противном случае вы, вероятно, столкнетесь с проблемой обеспечения access-control-allow-origin
(что является проблемой безопасности браузера).
Это предотвращает отправку одной даты на другой сайт.
Обходные:
Для получения дополнительной информации прочтите:
Обходное решение обновления 3 описано здесь (для Chrome / Dartium): https://groups.google.com/a/dartlang.org/d/msg/misc/kg13xtD7aXA/uxeXXrw3CG8J
Вы можете добавить параметр «–disable-web-security» в chrome.exe, чтобы отключить проверку кросс-домена.
(Конечно, это полезно только при разработке)
это не отправка данных между dart и php. это отправка данных из дротика в php !!!