@whireless

Как отправить и принять PUT?

Всем привет, подскажите, как корректно принять на сервере PUT-запрос с наличием body, в котором строка? Отправляю через fetch с режимом "cors" по умолчанию, и в браузере вылезает ошибка, связанная с заголовком "Access-Control-Allow-Origin", хотя на сервере в res.setHeader он прописан у меня. Если поменять запрос на POST, то все работает правильно как надо, но дело в том, что мне нужно именно через PUT отпрвить на сервер строку
  • Вопрос задан
  • 148 просмотров
Решения вопроса 1
@kaka888
C, C++, Qt, Python Flask, MySQL, Lua
ChatGPT ответил на этот вопрос вот так:

Для того, чтобы корректно принять на сервере PUT-запрос с телом (body) в виде строки, вам нужно убедиться, что на сервере вы используете правильные заголовки и обработчики запросов.

Вот пример кода на Node.js, который позволит вам принимать PUT-запросы с телом в виде строки:
const express = require('express');
const app = express();
const bodyParser = require('body-parser');

// разрешаем CORS-запросы
app.use((req, res, next) => {
  res.setHeader('Access-Control-Allow-Origin', '*');
  res.setHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE');
  res.setHeader('Access-Control-Allow-Headers', 'Content-Type');
  next();
});

// используем middleware для парсинга тела запроса
app.use(bodyParser.text());

// обрабатываем PUT-запрос с телом в виде строки
app.put('/', (req, res) => {
  console.log(req.body);
  res.send('OK');
});

// запускаем сервер
app.listen(3000, () => {
  console.log('Server started on port 3000');
});

В этом примере мы используем библиотеку body-parser для парсинга тела запроса в виде строки. Также мы устанавливаем заголовки CORS для разрешения запросов с любого источника.

Если вы используете другой способ парсинга тела запроса, то убедитесь, что ваш обработчик PUT-запросов правильно обрабатывает строковое тело запроса.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы