代码之家  ›  专栏  ›  技术社区  ›  Yo Momma

C代理使用套接字向客户端发送javascript

  •  0
  • Yo Momma  · 技术社区  · 15 年前

    我用C语言编写了一个代理,使用套接字和一个侦听特定端口的tcplistener。当前,侦听器从客户机浏览器获取“get”请求,然后使用socket.send()类代表客户机转发请求。使用socket.reveive()类接收响应,然后再次使用socket.send()转发到客户端。

    当客户机请求一个基本的HTML网站时,这很好地工作。但是,当客户端请求包含一些javascript的网站时,例如 <body onload='doThis();' ,它无法运行javascript。

    在这个特定的场景中,javascript函数执行重定向。我是否需要更改socket设置中的某些内容,以便在将javascript发送到客户端时运行它?

    2 回复  |  直到 15 年前
        1
  •  0
  •   Alex    15 年前

    很难说没有更多的信息。

    javascript函数“dothis()”是在HTML文件中实现的,还是来自includes.js文件? 如果它来自一个包含的.js文件,请确保“text/javascript”作为头中的内容类型发送,否则一些浏览器将不会运行JS。

    是否真的没有执行javascript,或者只是转发不起作用?试一试 <body onload='alert('test');' ?它执行吗?

    如果是:你的重定向JS到底是什么样子的?

    如果没有,你会怎么做? Socket.Send() “?你有没有给客户一个标志,说明页面已经准备好了?一些浏览器不会执行onload,直到页面被认为是完整的。文件发送到客户端后,是否尝试显式关闭连接?

        2
  •  0
  •   Yo Momma    15 年前

    问题解决了。客户机上有问题。重新启动它,再试一次,它像炸弹一样工作。