2010-08-09 5 views
0

아래 코드의 응답 텍스트는 화면에 인쇄하는 것 외에는 아무 것도 할 수 없습니다. 응답 텍스트가 무엇인지 확인하기 위해 if 문을 사용하고 싶습니다.하지만 시도 할 때마다 아무 것도 인쇄하지 않습니다. 난 그냥 Response.Write를 (xmlhttp.responseText)가있는 경우VBScript의 xmlhttp 응답 텍스트에 임의의 문자열 함수 사용

Set xmlhttp = server.CreateObject("MSXML2.XMLHTTP") 
xmlhttp.open "POST", url,false 
xmlhttp.setRequestHeader "Content-Type", "text/xml" 
message = "test example" 
xmlhttp.send(message) 

if xmlhttp.responseText = "2" 
response.Write("Found a 2") 
end if 

무엇 일어나는 것은이 인쇄됩니다 :이 예제를 위해서

, 응답 텍스트가 "2"

코드 가정 나는 시도하고 응답 텍스트 문자열 기능을 수행 할 때 두 부족하지만, 그것을 무시하고 어떤 도움이

+0

응답 텍스트와 함께 사용하려는 문자열 기능은 무엇입니까? 게시물에 예제를 추가 할 수 있습니까? – Helen

+0

내가 너무 를 사용하여 문자열이 다른 동일한 경우를 참조하면된다하려고 xmlhttp.responseText = "2" 도 을 시도하는 경우에서는 StrComp (에서 responseText, "2", 1) = 0 경우 텍스트 비교를 수행하고 동일한 경우 0을 리턴해야합니다. 그러나 ResponseText가 일반적으로 "2"인 것처럼 보일지라도 StrReverse (responseText)가 xml 응답을 역순으로 출력하기 때문에 반환되는 것과 관련된 문제인지 궁금해지기 시작했습니다. 계속 시도 할 것입니다. 무슨 일이 벌어지는 지 알아 내고 아이디어가 있다면 알려주세요. 감사합니다. – pedroAx

+0

지금 문제가 해결되었습니다. response.Write (responseText)를 수행하면 답장을하지 않고 영리하게 시도하고 인쇄 할 내용을 태그에있는 것으로 가정합니다. 그러나 문자열의 내용을 바꾸면 전체 xml 응답 텍스트를 제공합니다. 그래서 InStream과 Mid를 사용하여 XML 내에 을 찾아 값을 가져와야했습니다. – pedroAx

답변

2

에서 responseText 감사

아무것도를 인쇄합니다 문자열 값 "<"return> 2 < "/ return>을 보내십시오.이 값을 인쇄 할 때 매우 정교하여 2 개만 인쇄됩니다. 그래서 "2"와 비교하면 일치하지 않습니다. search() 메소드로이 문제를 해결했습니다. 예 : ...

var response = xmlhttp.responseText;

var found = response.search ("2");

if (found! = -1) { alert ("Found a 2"); }

설명 :이 string1.search (string2) 메소드는 string1에 string2가 없으면 -1을 보냅니다. 그러나 발견되면 그것은 당신에게 처음으로 발견 된 위치를 보냅니다. 결과가 -1이 아니면 string1에 string2가 있는지 확인하십시오. 이런 방식으로 시도 할 수 있습니다. 나는 당신이 당신의 문제를 해결할 수 있다고 생각합니다. 행운을 빌어 요.