userboss 发表于 2023-3-28 14:50:58

油猴脚本 websocket跨域问题

// ==UserScript==
// @name         New Userscript
// @namespace    https://bbs.tampermonkey.net.cn/
// @version      0.1.0
// @descriptiontry to take over the world!
// @author       You
// @match      https://www.baidu.com/
// @grant      unsafeWindow
// ==/UserScript==

(function() {
    'use strict';

    // Your code here...

    var ws = new WebSocket("ws://1.15.132.106:300");
    ws.onopen = function () {
      //当WebSocket创建成功时,触发onopen事件
      console.log("open");
      ws.send("111"); //将消息发送到服务端
      }
      ws.onmessage = function (e) {
            //当客户端收到服务端发来的消息时,触发onmessage事件,参数e.data包含server传递过来的数据
            console.log(e.data);
      }
      ws.onclose = function (e) {
            //当客户端收到服务端发送的关闭连接请求时,触发onclose事件
            console.log("close");
      }
      ws.onerror = function (e) {
            //如果出现连接、处理、接收、发送数据失败的时候触发onerror事件
            console.log(error);
      }

    }



})();

!(data/attachment/forum/202303/28/145040pf8rilly3pyf1s0s.png)!(data/attachment/forum/202303/28/145040i9l9a4782alm29np.png)

王一之 发表于 2023-3-28 15:07:53

!(data/attachment/forum/202303/28/150656tmmeewow6fmqdfhq.png)

xhr还能用GM_xhr绕过,websocket是无解了

王一之 发表于 2023-3-28 15:31:32

关于楼主百度这个,1是代码有问题,我修改了

```js
// ==UserScript==
// @name New Userscript
// @namespace https://bbs.tampermonkey.net.cn/
// @version 0.1.0
// @description try to take over the world!
// @author You
// @match https://www.baidu.com/
// @grant unsafeWindow
// ==/UserScript==

(function () {
    'use strict';
    // Your code here...

    var ws = new WebSocket("ws://1.15.132.106:300");
    ws.onopen = function () {
      //当WebSocket创建成功时,触发onopen事件
      console.log("open");
      ws.send("111"); //将消息发送到服务端
    }
    ws.onmessage = function (e) {
      //当客户端收到服务端发来的消息时,触发onmessage事件,参数e.data包含server传递过来的数据
      console.log(e.data);
    }
    ws.onclose = function (e) {
      //当客户端收到服务端发送的关闭连接请求时,触发onclose事件
      console.log("close");
    }
    ws.onerror = function (e) {
      //如果出现连接、处理、接收、发送数据失败的时候触发onerror事件
      console.log(error);
    }

})();

```

2是要求ws也是ssl的wss协议,!(data/attachment/forum/202303/28/153128cd8edwdwhom4o283.png)

大药科技 发表于 2023-3-28 20:08:45

王一之 发表于 2023-3-28 15:31
关于楼主百度这个,1是代码有问题,我修改了

```js


是不是因为baidu是https的原因? 所以才需要升级到wss

王一之 发表于 2023-3-28 20:47:10

大药科技 发表于 2023-3-28 20:08
是不是因为baidu是https的原因? 所以才需要升级到wss

是的
页: [1]
查看完整版本: 油猴脚本 websocket跨域问题