Для того чтобы использовать прокси-сервер в скриптах Tampermonkey, стоит помнить несколько важных моментов. В частности, Tampermonkey не поддерживает опцию `proxy` в `GM_xmlhttpRequest`, как вы, возможно, ожидали. Вместо нескольких подходов, законный способ сделать запрос через прокси - это выполнить прокси-запрос на своем сервере, который будет выступать в качестве промежуточного звена, и уже через него делать запросы к нужному ресурсу.
Вот шаги по реализации через ваш Node.js сервер:
1. **Настройка Node.js сервера**: Вам нужно настроить сервер, который будет принимать запросы от Tampermonkey и перенаправлять их через ваш прокси. Ниже пример на Express.js:
```javascript
const express = require('express');
const axios = require('axios');
const app = express();
const port = 3000;
// Middleware для обработки JSON
app.use(express.json());
app.get('/proxy', async (req, res) => {
const url = req.query.url;
try {
// Здесь укажите ваш прокси
const response = await axios.get(url, {
proxy: {
host: '166.1.226.183',
port: 8905,
auth: {
username: 'login',
password: 'password'
}
}
});
res.send(response.data);
} catch (error) {
res.status(500).send('Error fetching the URL: ' + error.message);
}
});
app.listen(port, () => {
console.log(`Proxy server running at http://localhost:${port}`);
});
```
2. **Обновление скрипта Tampermonkey**: Теперь, когда ваш сервер настроен, вы можете отправлять запросы к нему и указать URL-адрес, который нужно проксировать.
```javascript
// ==UserScript==
// @name Proxy Request to 2ip.ru
// @namespace http://tampermonkey.net/
// @version 0.1
// @description Send request to 2ip.ru through proxy
// @author You
// @match https://tradeit.gg/*
// @grant GM_xmlhttpRequest
// @connect localhost // добавьте здесь ваш адрес
// @connect 2ip.ru
// ==/UserScript==
(function() {
'use strict';
// Запрос к вашему прокси-серверу
GM_xmlhttpRequest({
method: 'GET',
url: 'http://localhost:3000/proxy?url=https://2ip.ru/',
onload: function(response) {
console.log('Response from proxy:', response.responseText);
},
onerror: function(error) {
console.error('Error:', error);
}
});
})();
```
Таким образом, сам Tampermonkey не делает прямые запросы через прокси, но ваш Node.js сервер может делать это от имени скрипта. Убедитесь, что ваш сервер доступен из сети, если вы планируете использовать его не локально.