2010-07-22 81 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,直到頁面被說完成。文件發送到客戶端後,您是否嘗試明確關閉連接?

相關問題