我目前在Heroku上托管了一个后端服务器。我正在编写一个Firefox扩展,其中我使用fetch
发送一些数据,以供后端服务器存储在数据库中。我遇到的问题是,当我尝试使用fetch发送POST请求时,出现网络错误:尝试获取打印到控制台的资源时。
我已经读到这最常见是由于CORS造成的,因此我尝试了许多不同的组合,这些操作包括从后端服务器中删除cors()
,并在获取时传递不同的mode
选项。当我在提取中执行mode: "no-cors"
而在后端服务器中不执行app.use(cors())
时,请求通过,但它是一个不透明的请求,实际上没有将任何数据发送回请求主体中的服务器
这是我后端的CORS代码部分
app.options('*', cors()); // pre-flight request
//app.use(cors()); // I also tried this
我的提取请求如下:
fetch('https://myapp.herokuapp.com/addProduct', {
method: "POST",
mode: "cors", // I've also tried no-cors and not using mode at all
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify(postData)
}).then((res) => console.log(res))
.then(response => console.log('Success:', JSON.stringify(response)))
.catch(error => console.error('Error:', error))
但是通过Postman发送请求就可以了。
我真的不确定在这里还能做些什么来使这个请求通过。任何帮助将不胜感激!