脚本体验师001 发表于 2021-9-18 15:44:54

Cookie 和 cookie 还有区别?Referer 和 referer 还有区别?GET和get还有区别?我好像都是乱用的啊。
我靠,咋没个教程没个标准呢!

王一之 发表于 2021-9-18 15:59:57

脚本体验师001 发表于 2021-9-18 15:44
Cookie 和 cookie 还有区别?Referer 和 referer 还有区别?GET和get还有区别?我好像都是乱用的啊。
我靠 ...

参数中有大小写的区别,header倒是没问题。

所以没有自动提示之类的东西,就很淦。官方有文档,但是谁没事时时刻刻查。所以推荐ScriptCat!

话说是这个问题导致的么?

脚本体验师001 发表于 2021-9-18 16:29:04

王一之 发表于 2021-9-18 15:02
http.ajax等价GM_xhr?

哥哥使用的油猴脚本管理器是什么?


我保证在这个请求之前,那条Cookie信息浏览器里没有的。
"Cookie:": "xxx","cookie:": "xxx" 可以
Cookie: "xxx",cookie: "xxx","cookie": "xxx" 不可以
就是这么犟,爱咋咋地

王一之 发表于 2021-9-18 16:31:04

脚本体验师001 发表于 2021-9-18 16:29
我保证在这个请求之前,那条Cookie信息浏览器里没有的。
"Cookie:": "xxx","cookie:": "xxx" 可以
Cooki ...

哥哥发一下tm管理器的版本和代码,我去调试一下?

脚本体验师001 发表于 2021-9-18 16:50:44

王一之 发表于 2021-9-18 16:31
哥哥发一下tm管理器的版本和代码,我去调试一下?

黑猴子最新版
https://pan.baidu.com/s/1zoXTGXF5twZiK_vK55wL3Q
shareId=zoXTGXF5twZiK_vK55wL3Q,sharePwd=zbvc

再加一段代码取shareRandsk

      obj.baiduShareVerify = function (shareId, sharePwd, callback) {
            var baiduId = randString(32).toUpperCase() + ":FG=1", //"403F8F9CE74DC433276B0614D7F3A134:FG=1", //getCookie("BAIDUID")
                logid = window.btoa(baiduId); //window.yunData.MYBDSTOKEN

            var url = "https://pan.baidu.com/share/verify";
            url += "?surl=" + shareId + "&t=" + (new Date).getTime() + "&channel=chunlei&web=1&app_id=250528&bdstoken=null&logid=" + logid + "&clienttype=0";
            var data = {
                pwd: sharePwd,
                vcode: "",
                vcode_str: ""
            }
            var headers = {
                Referer: "https://pan.baidu.com/share/init?surl=" + shareId + "&pwd=" + sharePwd
            }

            http.ajax({
                type: "post",
                url: url,
                data: data,
                headers: headers,
                success: function (response) {
                  //console.log("百度校验 response", response);
                  if (response instanceof Object) {
                        if (response.errno == 0) {
                            //console.log("百度校验 成功");
                            var verifyResponse = response;
                            obj.getShareList_mobile(shareId, verifyResponse.randsk, function (response) {
                              if (response.errno == 0) {
                                    response.share_name = response.list.server_filename + (response.list > 1 ? "等" : "");
                                    callback && callback(response);
                              }
                              else {
                                    console.error("百度校验 getShareList_mobile 失败,失败原因:", response);
                                    callback && callback(verifyResponse);
                              }
                            });
                        }
                        else {
                            console.error("百度校验 失败,失败原因:", response);
                            callback && callback("");
                        }
                  }
                  else {
                        callback && callback("");
                  }
                },
                error: function (err) {
                  callback && callback("");
                }
            });
      };
randString(32)是取32位随机字符

脚本体验师001 发表于 2021-9-18 16:57:57

咦不对,浏览器里好像有这条Cookie信息

我糊涂了好像

王一之 发表于 2021-9-18 16:58:01

脚本体验师001 发表于 2021-9-18 16:50
黑猴子最新版
https://pan.baidu.com/s/1zoXTGXF5twZiK_vK55wL3Q
shareId=zoXTGXF5twZiK_vK55wL3Q,share ...
没怎么看明白,要不哥哥加群联系,远程?
887697472

王一之 发表于 2021-9-18 17:09:09

脚本体验师001 发表于 2021-9-18 16:57
咦不对,浏览器里好像有这条Cookie信息

我糊涂了好像

建议开启开发者模式,去扩展的background看实际请求的network

脚本体验师001 发表于 2021-9-18 17:17:10

王一之 发表于 2021-9-18 17:09
建议开启开发者模式,去扩展的background看实际请求的network

嗯,我自己有点明白了。谢谢哥哥当陪练,军功章有我的一半也有你的一半。
我去塞Cookie,恰恰是破坏了Cookie结构。
但我这样破话反而是好的,因为有很多链接时,这样才每个都有效。不然如果不加Cookie只有第一个链接有效。
我先自己看一下能不能整明白

cxxjackie 发表于 2021-9-18 20:41:45

"Cookie:": 这里多了一个冒号吧,等于你添加了一个无效header,也就是没传Cookie,去掉引号后你把冒号也去了,这时Cookie是生效的,跑不通了说明你的Cookie格式不对。GM_xhr在不指定Cookie的时候会传浏览器保存的Cookie,指定Cookie后会将你的Cookie与原Cookie合并后发出(重复字段会用你指定的覆盖原有的)。也就是说你第一次没有传Cookie(无效header),GM_xhr使用了原Cookie,第二次传了Cookie却跑不通,那肯定是你传的Cookie不对。这跟大小写没关系,headers里是大小写不敏感的,'GET'和'get'也没有区别。
页: 1 [2] 3
查看完整版本: 关于GM_xmlhttpRequest一个诡异事件求解释