function getHTTPPage(url) {
var Http;
Http=new ActiveXObject("MSXML2.XMLHTTP");
Http.open("GET",url,true);
Http.send();
if (Http.readyState!=4) return;
var sRep=Http.responseText;
return sRep;
}
Response.ContentType="text/html";
var sText=String(Request.Form("TAG"));
var url="http://sms.webchinese.cn/web_api/?Uid=laolinju&Key=50c8bc26&smsMob=18205900361&smsText=1234";
var text=getHTTPPage(url);
这样写 text的返回值是-2;
然后我改动了一下
Response.ContentType="text/html";
var sText=String(Request.Form("TAG"));
var url="http://sms.webchinese.cn/web_api/?Uid=laolinju&Key=50c8bc26&smsMob=18205900361&smsText=";
url+=sText;
var text=getHTTPPage(url);
其中sText的值是1234,改动完之后返回值就变成undefined了,为什么?(url后面我用alert显示出来过,两个是一样的)

解决方案 »

  1.   

    http://sms.webchinese.cn/api.shtml他们网站都写的很清楚返回值-2是:密钥不正确,密钥不是密码,你一定输入的是密码,所以你的程序是对的,只是密钥不正确而已http://sms.webchinese.cn/user/?action=key这是密钥地址,你把密码都贴出来,大家都可以登录了,危险了,赶紧改了。做接口,至少你要看清楚人家写的是什么,别人为key就是密钥,他们网站参数都写的明白了,只是你没认真看。
      

  2.   

    Http.open("GET",url,true);
    如果设置为true,必须使用
    Http=new ActiveXObject("MSXML2.XMLHTTP");
    Http.open("GET",url,true);
    Http.onreadystatechange=function() {
      if (Http.readyState==4 && Http.status==200) {
       alert(Http.responseText)
      }
     }
     Http.send()不能直接执行return
    因为是异步的或者你改成Http.open("GET",url,false);