Это мой клиент:
import 'dart:html'; void main() { var request = new HttpRequest(); request.open('post','http://127.0.0.1/dartphp/index.php',async: true); request.send("some data"); }
и мой сервер:
<?php header("Access-Control-Allow-Origin: http://127.0.0.1:3030"); header("Access-Control-Allow-Methods: POST, GET, OPTIONS"); ?> <html><body> <?php echo "postback"; echo "<pre><br>post<br>"; echo $HTTP_RAW_POST_DATA; echo "</pre><br>"; ?> </body></html>
Я выполняю дротик в Dartium на 3030 и слушаю Apache на 80. Ошибка, которую я получаю: XMLHttpRequest не может загрузить http://127.0.0.1/dartphp/index.php
. В запрошенном ресурсе нет заголовка «Access-Control-Allow-Origin». Поэтому http://127.0.0.1:3030
'не допускается.
Я прочитал статьи Отправить данные между php и dart и CORS с Dart, как я могу заставить его работать? но в то же время синтаксис изменился или решение не применимо к моей проблеме,
для первого «on.readyStateChange.add» больше не существует
для второго «request.response.headers.add» невозможно, поскольку «ответ» не имеет определенных «заголовков»
Что нужно изменить, чтобы «request.onReadyStateChange.listen ((_)» к ответу
Серверу необходимо добавить заголовок Access-Control-Allow-Origin
не клиент.
Ваша страница загружается с http://127.0.0.1:3030
и затем хочет получить доступ к http://127.0.0.1/dartphp/index.php
который считается другим доменом.
Клиент отправляет запрос на сервер, чтобы проверить, отвечает ли он заголовком Access-Control-Allow-Origin
который подходит для источника клиента (который *
качестве подстановочного знака) после этого отправляется фактический запрос.
Попробуйте настроить следующие заголовки
"Access-Control-Allow-Origin", "http://127.0.0.1:3030" "Access-Control-Allow-Methods", "POST, GET, OPTIONS"