В настоящее время у меня есть внутренний сервер, размещенный на Heroku. Я пишу расширение Firefox, в котором я использую fetch
для отправки некоторых данных для хранения в базе данных бэкэнд-сервером. Проблема, с которой я сталкиваюсь, заключается в том, что, когда я пытаюсь отправить запрос POST, используя fetch, я получаю Сетевую ошибку: при попытке извлечь ресурс, напечатанный на моей консоли.
Я читал, что это чаще всего происходит из-за CORS, и поэтому я пробовал много разных комбинаций удаления cors()
с внутреннего сервера, а также передачи различных опций mode
в fetch. Когда я выполняю mode: "no-cors"
в Fetch и не выполняю 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))
Однако отправка запроса через Почтальон работает нормально.
Я действительно не уверен, что еще нужно сделать, чтобы выполнить этот запрос. Любая помощь будет принята с благодарностью!