2010-07-22 80 views
0

我在C#中使用套接字和侦听特定端口的TCPListener编写了代理。目前,监听器从客户端浏览器获取“GET”请求,然后使用Socket.Send()类代表客户端转发请求。使用Socket.Reveive()类接收响应,然后再次使用Socket.Send()转发到客户端。C#代理使用套接字向客户端发送javascript

当客户端请求一个基本的html网站时,这个工程很可爱。但是,当客户端请求包含一些JavaScript的网站(如<body onload='doThis();')时,它无法运行javascript。

在这种特定的情况下,javasript函数会执行重定向。我是否需要在套接字设置中更改某些内容以允许JavaScript在发送到客户端时运行?

回答

0

问题已解决。客户端PC上存在问题。重新启动它,再次尝试,它像炸弹一样工作。

0

很难说没有更多的信息。

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

JavaScript是否真的没有执行或只是前进不工作?试用<body onload='alert('test');'?它执行吗?

如果是:你的重定向JS看起来像什么?

如果不是:您在“Socket.Send()”之后做了什么?你是否以任何方式给客户一个标志,该页面准备好了?一些浏览器将不会执行onLoad,直到页面被说完成。文件发送到客户端后,您是否尝试明确关闭连接?

相关问题