Net Err Cleartext Not Permitted: Causes and Fixes
Ошибка "net err cleartext not permitted" возникает, когда приложение пытается установить соединение по протоколу HTTP вместо HTTPS. Она может быть вызвана настройками безопасности на сервере, который не разрешает соединения на незашифрованные порты.
Для решения этой проблемы, необходимо изменить протокол подключения на HTTPS и при необходимости, установить сертификат SSL на сервере.
Примеры кода для решения данной ошибки:
1. Вариант 1:
fetch('http://example.com/data.json')
.then(response => {
console.log(response);
})
.catch(error => {
console.log(error);
});
// Ошибка "net err cleartext not permitted"
Этот код пытается установить соединение по протоколу HTTP, что вызывает ошибку. Убедимся, что он будет работать, если изменить протокол подключения на HTTPS:
fetch('https://example.com/data.json')
.then(response => {
console.log(response);
})
.catch(error => {
console.log(error);
});
2. Вариант 2:
const http = require('http');
const server = http.createServer((req, res) => {
res.end('Hello World!');
});
server.listen(3000, () => {
console.log('Server running on port 3000');
});
// Ошибка "net err cleartext not permitted"
В этом примере, сервер запускается на порту 3000 по протоколу HTTP, вызывая ошибку. Чтобы исправить это, запустим сервер на порту 443 (стандартный порт для HTTPS) и добавим SSL-сертификат:
const https = require('https');
const fs = require('fs');
const options = {
key: fs.readFileSync('server.key'),
cert: fs.readFileSync('server.crt')
};
const server = https.createServer(options, (req, res) => {
res.end('Hello World!');
});
server.listen(443, () => {
console.log('Server running on port 443');
});
Данный код запустит сервер на порту 443 по протоколу HTTPS. Также, он использует SSL-сертификат, который был сгенерирован на сервере.
В итоге, проблема "net err cleartext not permitted" возникает, когда приложение пытается установить соединение по протоколу HTTP вместо HTTPS. Чтобы ее решить, необходимо изменить протокол подключения на HTTPS и настроить соединение в соответствии с требованиями безопасности сервера.