【问题标题】:flutter web: how to connect to a rest API or localhostFlutter web:如何连接到一个 REST API 或 localhost
【发布时间】:2020-02-15 17:20:13
【问题描述】:

我的代码:

void checkState() async {
    print("CTC");
    var url = "http://localhost:3000";
    try {
       var respX = await http.get(url);
    } catch (err) {
      print("response Arrived: $err");
   }
  }

但这是不可能的: https://github.com/flutter/flutter/issues/43015#issuecomment-543835637

我正在使用谷歌浏览器进行调试。只需粘贴 http://localhost:3000 即可让我从同一个浏览器连接到 URL。

有什么办法吗?

【问题讨论】:

    标签: rest flutter browser flutter-web


    【解决方案1】:

    这个问题与颤振无关。阻止请求的是浏览器和服务器中的 CORS 策略。我使用 express 将它托管在 nodejs 服务器中。这是我为解决这个问题所做的:

    const express = require('express');
    
    const app = express();
    
    app.use((req, res, next) => {
      res.header('Access-Control-Allow-Origin', '*');
      next();
    });
    
    

    您可以根据需要将'Access-Control-Allow-Origin' 更改为您从中调用的域。否则它将允许来自任何地方的请求。

    【讨论】:

      【解决方案2】:

      请记住,您的模拟器的本地主机不是您机器的本地主机。要测试在您的机器上运行的 API,您必须指向您计算机的 IP 地址

      【讨论】:

      • 模拟器?在flutter-web中?
      • 我可以从同一个浏览器的不同选项卡连接到 url。回答前请考虑github问题链接上flutter的回复。
      猜你喜欢
      • 1970-01-01
      • 2020-10-27
      • 1970-01-01
      • 2019-06-10
      • 1970-01-01
      • 2020-02-07
      • 2021-07-21
      • 2017-02-09
      • 2014-09-24
      相关资源
      最近更新 更多