前一段时间首间更新了tampermonkey, 结果导致以前那个脚本丢掉了 , 还是2年前写的,那个可以正常发送到RPC,
脚本端口是16800 密钥部分,我用XXXXXXX代替了。
[JavaScript] 纯文本查看 复制代码// ==UserScript==
// @name Aria2 测试连接与添加任务
// @namespace http://tampermonkey.net/
// @version 1.0
// @description 在任意网页中添加一个按钮,用于测试 Aria2 连接并提交下载任务。
// @AuThor YourName
// @match *://*/*
// @grant GM_xmlhttpRequest
// @connect localhost
// ==/UserScript==
(function() {
'use strict';
// 创建按钮元素
const button = document.createElement("button");
button.innerText = "测试 Aria2 并添加下载";
button.style.position = "fixed";
button.style.bottom = "20px";
button.style.right = "20px";
button.style.zIndex = "99999";
button.style.backgroundColor = "#4CAF50";
button.style.color = "white";
button.style.padding = "12px 20px";
button.style.border = "none";
button.style.borderRadius = "5px";
button.style.cursor = "pointer";
button.style.fontSize = "14px";
button.style.boxShadow = "0 4px 6px rgba(0,0,0,0.1)";
// 将按钮添加到页面
document.body.appendChild(button);
// 按钮点击事件处理函数
button.onclick = function() {
testAria2Connection();
};
// 测试Aria2连接并添加下载任务的函数
function testAria2Connection() {
console.log("【Aria2测试】按钮点击事件触发");
// 构建RPC请求数据
const rpcData = {
jsonrpc: "2.0",
id: new Date().getTime(), // 使用时间戳作为ID
method: "aria2.addUri",
params: [
"token:XXXXXXX", // 确保这里的token和Aria2配置中的token一致
["https://img0.baidu.com/it/u=3107514090,445525120&fm=253&fmt=auto&app=138&f=JPEG"]
]
};
console.log("【Aria2测试】发送请求数据:", rpcData);
// 使用GM_xmlhttpRequest发送请求
GM_xmlhttpRequest({
method: "POST",
url: "http://localhost:16800/jsonrpc", // 确保这里的URL是正确的
headers: {
"Content-Type": "application/json"
},
data: JSON.stringify(rpcData),
onload: function(response) {
console.log("【Aria2测试】收到响应:", response);
if (response.status === 200) {
try {
const result = JSON.parse(response.responseText);
console.log("解析响应:", result);
if (result.error) {
console.error("Aria2 Error:", result.error.message);
} else {
console.log("任务已添加,GID:", result.result);
}
} catch (e) {
console.error("解析响应失败", e);
}
} else {
console.error("HTTP 错误:", response.status, response.statusText);
}
},
onerror: function(err) {
console.error("请求失败:", err);
}
});
}
})();