как обойти ошибку: Access to fetch at '...' from origin '...' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled. Код Access to fetch at '...' from origin '...' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled. и сделать запрос со страницы другого домена? если использовать что то типа ****** то айпи поменяется, а мне важно чтобы он остался как есть и именно со страницы был запрос js кодом
b001, ошибка, которую вы видите, связана с политикой CORS (Cross-Origin Resource Sharing). Она возникает, когда вы пытаетесь выполнить запрос с одного домена на другой домен, и сервер не разрешает доступ к ресурсу из-за ограничений безопасности. Есть несколько способов обойти эту ошибку и выполнить запрос со страницы другого домена: 1. Использование ******-сервера: Вы можете настроить ******-сервер на своем домене, который будет перенаправлять запросы на целевой домен. Таким образом, запрос будет отправляться с вашего домена, и сервер не будет блокировать его из-за политики CORS. Однако, как вы уже упомянули, это может изменить IP-адрес запроса. 2. JSONP (JSON with Padding): Если сервер поддерживает JSONP, вы можете использовать этот метод для выполнения запроса. JSONP позволяет получать данные с другого домена, обертывая ответ в функцию обратного вызова. Однако, этот метод имеет свои ограничения и требует поддержки сервера. 3. CORS Proxy: Вы можете использовать готовые CORS-******, которые позволяют отправлять запросы с вашего домена на другой домен. Эти ****** добавляют заголовки CORS к запросам, чтобы обойти ограничения безопасности. Одним из таких ****** является "cors-anywhere". Вы можете использовать его, добавив префикс "https://cors-anywhere.herokuapp.com/" к URL вашего запроса. Например: fetch('https://cors-anywhere.herokuapp.com/https://example.com/api/data') .then(response => response.json()) .then(data => console.log(data)) .catch(error => console.log(error)); JavaScript fetch('https://cors-anywhere.herokuapp.com/https://example.com/api/data') .then(response => response.json()) .then(data => console.log(data)) .catch(error => console.log(error)); Обратите внимание, что использование готовых ****** может быть небезопасным, поэтому будьте осторожны и проверяйте надежность ******-сервера. Надеюсь, это поможет вам обойти ошибку CORS и выполнить запрос со страницы другого домена. Если у вас возникнут дополнительные вопросы, пожалуйста, дайте мне знать.
b001, понимаю вашу проблему. Если вам нужно сохранить свой IP-адрес при выполнении запроса через ******, то вам потребуется настроить ******-сервер таким образом, чтобы он передавал ваш IP-адрес в заголовке запроса. Вот пример кода на Node.js, который позволяет создать ******-сервер и передавать IP-адрес в заголовке запроса: const http = require('http'); const proxy = http.createServer((req, res) => { const options = { hostname: 'example.com', // Замените на целевой домен port: 80, // Замените на порт целевого домена path: req.url, method: req.method, headers: { 'X-Forwarded-For': req.connection.remoteAddress // Передача IP-адреса в заголовке } }; const proxyReq = http.request(options, (proxyRes) => { res.writeHead(proxyRes.statusCode, proxyRes.headers); proxyRes.pipe(res); }); req.pipe(proxyReq); }); proxy.listen(3000); // Замените на порт, на котором будет работать ******-сервер JavaScript const http = require('http'); const proxy = http.createServer((req, res) => { const options = { hostname: 'example.com', // Замените на целевой домен port: 80, // Замените на порт целевого домена path: req.url, method: req.method, headers: { 'X-Forwarded-For': req.connection.remoteAddress // Передача IP-адреса в заголовке } }; const proxyReq = http.request(options, (proxyRes) => { res.writeHead(proxyRes.statusCode, proxyRes.headers); proxyRes.pipe(res); }); req.pipe(proxyReq); }); proxy.listen(3000); // Замените на порт, на котором будет работать ******-сервер Вы можете запустить этот код на своем сервере, заменив `'example.com'` на целевой домен и `3000` на порт, на котором будет работать ******-сервер. После запуска ******-сервера, вы можете отправлять запросы на ******-сервер с вашего домена, и он будет передавать IP-адрес в заголовке `X-Forwarded-For` при выполнении запроса на целевой домен. Таким образом, целевой сервер будет видеть ваш IP-адрес, а не IP-адрес ******-сервера. Надеюсь, это поможет вам сохранить ваш IP-адрес при выполнении запроса через ******. Если у вас возникнут дополнительные вопросы, пожалуйста, дайте мне знать.