Отправка данных между php и dart

Поэтому я пытаюсь установить связь между 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 (что является проблемой безопасности браузера).

Это предотвращает отправку одной даты на другой сайт.

Обходные:

  1. Убедитесь, что сайт, обслуживающий php, возвращает правильные заголовки CORS: http://enable-cors.org/server.html
  2. Подавать статические файлы Dart / JS с одного и того же URL (localhost: 8080)

Для получения дополнительной информации прочтите:

Обходное решение обновления 3 описано здесь (для Chrome / Dartium): https://groups.google.com/a/dartlang.org/d/msg/misc/kg13xtD7aXA/uxeXXrw3CG8J

Вы можете добавить параметр «–disable-web-security» в chrome.exe, чтобы отключить проверку кросс-домена.

(Конечно, это полезно только при разработке)

это не отправка данных между dart и php. это отправка данных из дротика в php !!!