2010-07-22 2 views
0

C#에서 소켓을 사용하여 프록시를 작성하고 특정 포트를 수신하는 TCPListener를 작성했습니다. 현재 리스너는 클라이언트 브라우저에서 "GET"요청을 얻은 다음 Socket.Send() 클래스를 사용하여 클라이언트 대신 요청을 전달합니다. 응답은 Socket.Reveive() 클래스를 사용하여 수신 된 다음 Socket.Send()를 다시 사용하여 클라이언트로 전달됩니다.C# 클라이언트에게 자바 스크립트를 보내는 소켓을 사용하는 프록시

클라이언트가 기본 html 웹 사이트를 요청할 때 멋지게 작동합니다. 그러나 클라이언트가 <body onload='doThis();'과 같은 일부 자바 스크립트가 포함 된 웹 사이트를 요청하면 자바 스크립트를 실행하지 못합니다.

이 특정 시나리오에서 javasript 함수는 리디렉션을 수행합니다. 자바 스크립트가 클라이언트로 전송 될 때 실행되도록 소켓 설정에서 뭔가를 변경해야합니까?

답변

0

문제가 해결되었습니다. 클라이언트 PC에 문제가 발생했습니다. 그것을 다시 시작했고, 다시 시도했다. 그리고 그것은 폭탄처럼 움직였다.

0

더 많은 정보가 없으면 말하기 어렵습니다.

html 파일 내에 javascript 함수 "doThis()"가 구현되어 있습니까? 아니면 include .js 파일에서 가져온 것입니까? 포함 된 .js 파일에서 오는 경우 "text/javascript"가 헤더의 내용 유형으로 전송되는지 확인하십시오. 그렇지 않으면 일부 브라우저는 js를 실행하지 않습니다.

JavaScript가 실제로 실행되지 않습니까, 아니면 전달이 작동하지 않습니까? <body onload='alert('test');'으로 해 보시겠습니까? 실행합니까?

예인 경우 : 리디렉션 JS는 정확히 어떻게 생겼습니까?

그렇지 않은 경우 "Socket.Send()"뒤에 무엇을할까요? 어떤 방법 으로든 고객에게 페이지가 준비되었음을 나타내는 신호를 주시겠습니까? 일부 브라우저는 페이지가 완료 될 때까지 onLoad를 실행하지 않습니다. 파일이 클라이언트로 전송 된 후 명시 적으로 연결을 닫으려고 했습니까?

관련 문제