веб-флаттер: как подключиться к API отдыха или локальному хосту - PullRequest
0 голосов
/ 18 октября 2019

Мой код:

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

Я использую Google Chrome для отладки. просто вставив http://localhost:3000, я могу подключиться к URL из того же браузера.

Есть ли способ сделать это?

Ответы [ 2 ]

0 голосов
/ 21 октября 2019

Эта проблема не была с флаттером. Это политика CORS в браузере, а также сервер, который заблокировал запрос. Я разместил его на сервере nodejs с экспресс. Вот что я сделал, чтобы решить эту проблему:

const express = require('express');

const app = express();

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

Вы можете изменить 'Access-Control-Allow-Origin' на домен, с которого вы звоните, если хотите. Иначе это позволит запрос отовсюду.

0 голосов
/ 18 октября 2019

Помните, локальный хост вашего эмулятора не является локальным хостом вашей машины. Чтобы протестировать API, работающий на вашем компьютере, вы должны указать IP-адрес вашего компьютера

...