Как отправить POST-запрос с сайта на локальный сервер?

Как можно настроить разрешение для отправки post-запросов на localhost из Tampermonkey скрипта, интегрированного на внешний сайт? Возникает ошибка содержания политики безопасности контента при попытке отправить запрос на localhost из-за блокировки ресурса.
  • 29 мая 2024 г. 10:01
Ответы на вопрос 2
Для отправки POST-запроса с сайта на локальный сервер с помощью JavaScript можно использовать fetch API. Вот пример кода:

```javascript
fetch('http://localhost:3000/api', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({ key: 'value' })
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
```

Чтобы разрешить отправку POST-запросов на localhost из Tampermonkey скрипта, вам нужно настроить заголовки CORS (Cross-Origin Resource Sharing) на вашем локальном сервере. Для этого можно добавить следующие заголовки к ответу сервера:

```javascript
app.use((req, res, next) => {
  res.setHeader('Access-Control-Allow-Origin', '*');
  res.setHeader('Access-Control-Allow-Methods', 'POST, GET, OPTIONS');
  res.setHeader('Access-Control-Allow-Headers', 'Content-Type');
  next();
});
```

Этот код добавляет заголовки CORS, позволяющие отправлять POST-запросы на указанный сервер. После этого запрос из вашего Tampermonkey скрипта должен проходить успешно.

Если вы продолжаете получать ошибку политики безопасности контента, вам может потребоваться проверить настройки безопасности браузера для разрешения запросов на localhost. Например, в Google Chrome вы можете установить расширение Allow CORS: Access-Control-Allow-Origin для временного разрешения запросов на нужный домен.
Только убрав/изменив заголовок Content-Security-Policy на сайте. Пока этот заголовок присутствует и в нём есть директива connect-src 'self' браузер будет блокировать запросы к любым другим источникам.
Похожие вопросы