Каждый раз, когда я нажимаю кнопку обновления, появляется сообщение об ошибке, в котором говорится, что Доступ к выборке в 'http://localhost: 3000 / обновление ' из источника 'null' был заблокирован политикой CORS: Ответ на предпечатную проверку запрос не проходит проверку контроля доступа: он не имеет статуса HTTP ok.
Код интерфейса:
<form id="sweets">
ID: <input v-model="id" type="text" name="id"><br>
Sweet: <input v-model="sweetname" type="text" name="name"><br>
Price: <input v-model="price" type="text" name="price"><br>
<button v-on:click="update">Update</button>
</form>
Кодировка на стороне клиента:
const app = new Vue({
el: "#app",
data: {
id: "",
name: "",
price: ""
},
methods: {
update() {
const sweetscollection = {
id: this.id,
name: this.name,
price: this.price
};
const options = {
method: "PUT",
headers: {
"Content-type": "application/json"
}
};
fetch("http://localhost:3000/update", options).then(response => {
console.log("success", response);
});
}
}
});
На стороне сервера:
app.put("/update", (req, res, next) => {
req.collection.update(
{ _id: new ObjectID(req.params.id) },
{ $set: req.body },
{ safe: true, multi: false },
(e, result) => {
if (e) return next(e);
res.send(
result.result.n === 1 ? { msg: "success" } : { msg: "error" }
);
}
);
});