首页 > 解决方案 > 如何检查url链接是否存在并在flutter中获取statusCode?

问题描述

我正在尝试通过 using 检查是否存在 url,statusCode == 200但是当我尝试使用时await http.get(url),它不起作用。我收到了这个错误XMLHttpRequest error

颤振版本

2.5.0

包裹

http: ^0.13.3

我的代码

import 'package:http/http.dart' as http;

final url = Uri.parse('https://www.google.com');

void getStatusCode() async {
  http.Response response = await http.get(url);
  if (response.statusCode == 200) {
    print('exists');
  } else {
    print('not exists');
  }
}

并调用 getStatusCode()

标签: flutterflutter-web

解决方案


这很可能是跨源请求问题,也称为 CORS。您正在网络上运行它。如果你要在 android 或 iOS 上运行它,你会很好,但在 web 中,你不能只向另一个站点发出网络请求,而没有另一个站点允许你通过遵循一些关于 CORS 的协议来这样做。

出现问题是因为您的网页运行的域很可能是 localhost 不是 googl.com,因此它是不同的来源。

此外,200 http 代码用于检查请求是否成功,这是正确的术语,记住这一点很重要。


推荐阅读