【发布时间】:2020-11-29 15:34:59
【问题描述】:
当用户提交联系表单时,我的 Flutter Web 应用需要调用 API。 API 是一个不和谐机器人的 API,它继续在我的不和谐服务器上的特定频道中发布消息。此设置适用于使用相同依赖项和相同生产环境(Firebase 托管)的其他两个应用程序,但在此特定应用程序上会引发以下错误:
访问 XMLHttpRequest 在 'https://discordapp.com/api/channels/689799838509957177/messages'来自 来源“https://autonet.tk”已被 CORS 策略阻止:响应 预检请求未通过访问控制检查:否 请求中存在“Access-Control-Allow-Origin”标头 资源。
如果我在请求中添加标头'Access-Control-Allow-Origin': '*',我只会得到XMLHttpRequest error
我的代码:
import 'package:http/http.dart' as http;
var resp = await http.post(
"https://discordapp.com/api/channels/689799838509957177/messages",
headers: {
'Authorization': "Bot " + botToken,
},
body: {
"content": "NEW MESSAGE: " + body
});
更难确定根本原因是因为它在我的本地机器上运行良好。只有在我将应用程序部署到 Firebase 托管时,我才会收到 CORS 错误。 另一件值得注意的事情是,在 Discord 方面,我无需进行任何配置即可接受其他两个使用相同代码运行良好的 Web 应用程序的传入请求。 (没有允许的主机列表)。
【问题讨论】:
标签: firebase cors discord endpoint flutter-http