You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Flutter中使用no-cors模式发送API请求?

Flutter 中实现类似 JS no-cors 的请求方式

首先明确:Flutter 的 HTTP 请求不受浏览器 CORS 策略限制,所以不存在「设置 mode: no-cors」的需求——CORS 是浏览器为了安全引入的同源策略限制,而 Flutter 作为原生客户端,发起的 HTTP 请求是直接与服务器通信,绕过了浏览器的 CORS 检查。

你之前尝试添加 Sec-Fetch-Mode: no-cors 头部无效,是因为这个头部是浏览器在发送请求时自动添加的标识,Flutter 客户端手动添加它不会产生任何实际作用。

解决你的问题:成功发送数据(无需响应)

你的 JS 代码中明确设置了 Content-Type: application/json 并将 body 转为 JSON 字符串,但 Flutter 代码里缺少这两个关键设置,这可能是请求失败的核心原因。以下是修正后的代码:

方法一:使用 http 包发送 JSON 请求

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

// ...

var corpo = {
  "LastName": "Teste 2",
  "email": "teste2@teste.com",
  "LeadSource": "Google",
  "MobilePhone": "",
  "idEmpreendimentoInteresse__c": "",
  "Campanha__c": "",
  "UTMMidia__c": ""
};

try {
  // 直接发送请求,无需处理响应
  await http.post(
    Uri.parse('https://myurl.com'),
    headers: <String, String>{
      "Content-Type": "application/json", // 必须设置这个头部
    },
    body: jsonEncode(corpo), // 将对象转为 JSON 字符串
  );
  print("数据发送成功");
} catch (e) {
  print("发送失败: $e");
}

方法二:使用更底层的 HttpClient(适合无需响应的场景)

如果完全不需要等待服务器响应,可以使用 HttpClient 发送请求后直接关闭连接,提升效率:

import 'dart:io';
import 'dart:convert';

// ...

var corpo = {
  "LastName": "Teste 2",
  "email": "teste2@teste.com",
  "LeadSource": "Google",
  "MobilePhone": "",
  "idEmpreendimentoInteresse__c": "",
  "Campanha__c": "",
  "UTMMidia__c": ""
};

var client = HttpClient();
try {
  var request = await client.postUrl(Uri.parse('https://myurl.com'));
  request.headers.set('Content-Type', 'application/json');
  request.write(jsonEncode(corpo));
  // 发送请求后直接关闭,不等待响应
  await request.close();
  print("数据已发送");
} catch (e) {
  print("发送失败: $e");
} finally {
  client.close();
}

关键注意点

  • 确保你的请求 Content-Type 与服务器期望的一致(JS 中用了 JSON,所以 Flutter 也要对应)
  • 无需添加任何与 CORS 相关的头部,Flutter 本身不做同源检查
  • 如果只需要发送数据,无需处理响应,可以忽略请求的返回值,甚至提前关闭连接

内容的提问来源于stack exchange,提问作者Guilherme Machado

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 04:10:09