DART中的客户端与PHP中的服务器通信:访问控制允许丢失源标头


Client in DART comunicate with server in PHP: access control allow origin headers missing

这是我的客户:
  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>

我在3030上在Dartium中执行dart,并在80上监听Apache。我得到的错误是: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'是不可能的,因为'response'没有'headers'定义

需要更改什么,以便可以'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"