免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 7002 | 回复: 7
打印 上一主题 下一主题

[AJAX] 请问能否在js里面使用xmlhttp,让客户端自己去远程服务器读取资料? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-12-16 12:33 |只看该作者 |倒序浏览
我的web需要去第三方站点读数据(偷,呵呵),但是web服务器压力比较大。
我想能否利用javascript,让客户端自己去第三方读了?我试了,但是我的代码好象不对。
如下:


  1. <script>

  2. var xmlHttp;

  3. //建立XMLHTTP对象,兼容IE和非IE浏览器

  4. if( window.XMLHttpRequest ) xmlHttp = new XMLHttpRequest();
  5. else if (window.ActiveXObject) xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");

  6. //客户端请求某个页面

  7. function gettopic( id )
  8. {
  9.     xmlHttp.open( "get", "http://www.host.com.cn/vpro.asp?id=" + id, false );
  10.     xmlHttp.setRequestHeader("context-type","text/xml;charset=utf-8");
  11.     xmlHttp.send(XML);

  12.     ......一些处理.......
  13. }
  14. </script>

复制代码

[ 本帖最后由 HonestQiao 于 2005-12-16 14:02 编辑 ]

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
2 [报告]
发表于 2005-12-16 14:03 |只看该作者
你的服务器传递到客户端的现在不可能直接读取第三方资料了.

论坛徽章:
0
3 [报告]
发表于 2005-12-19 08:27 |只看该作者
看看这断代码
没有好好整理
file1 保存为XNConn.js


  1. function XHConn()
  2. {
  3.   var xmlhttp, bComplete = false;
  4.   try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); }
  5.   catch (e) { try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); }
  6.   catch (e) { try { xmlhttp = new XMLHttpRequest(); }
  7.   catch (e) { xmlhttp = false; }}}
  8.   if (!xmlhttp) return null;
  9.   this.connect = function(sURL, sMethod, sVars, fnDone)
  10.   {
  11.     if (!xmlhttp) return false;
  12.     bComplete = false;
  13.     sMethod = sMethod.toUpperCase();

  14.     try {
  15.       if (sMethod == "GET")
  16.       {
  17.         xmlhttp.open(sMethod, sURL+"?"+sVars, true);
  18.         sVars = "";
  19.       }
  20.       else
  21.       {
  22.         xmlhttp.open(sMethod, sURL, true);
  23.         xmlhttp.setRequestHeader("Method", "POST "+sURL+" HTTP/1.1");
  24.         xmlhttp.setRequestHeader("Content-Type",
  25.           "application/x-www-form-urlencoded");
  26.       }
  27.       xmlhttp.onreadystatechange = function(){
  28.         if (xmlhttp.readyState == 4 && !bComplete)
  29.         {
  30.           bComplete = true;
  31.           fnDone(xmlhttp);
  32.         }};
  33.       xmlhttp.send(sVars);
  34.     }
  35.     catch(z) { return false; }
  36.     return true;
  37.   };
  38.   return this;
  39. }
复制代码

[ 本帖最后由 ydlhero 于 2005-12-19 08:34 编辑 ]

论坛徽章:
0
4 [报告]
发表于 2005-12-19 08:30 |只看该作者
file2 保持test.htm



  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html>
  3. <head>
  4.   
  5. <script type="text/javascript" src="XNConn.js"></script>

  6. <script type="text/javascript">
  7. function getInfo(){
  8.   var myConn = new XHConn();
  9.   if (!myConn) alert("XMLHTTP not available. Try a newer/better browser.");
  10.   var fnWhenDone = function (oXML) { alert(oXML.responseText); };
  11.   myConn.connect("http://www.163.com/", "GET", "foo=text", fnWhenDone);
  12.   }
  13. </script>
  14.   <style type="text/css">
  15.   #formWrapper{
  16.    color: rgb(255,255,255);
  17.    background-color: rgb(149,67,97);
  18.    width: 200px;
  19.   }
  20.   #title{
  21.    text-align: center;
  22.    background-color: rgb(0,0,0);
  23.   }
  24.   #formDiv{
  25.    padding: 25px;
  26.   }
  27.   .submitDiv{
  28.    margin-top: 10px;
  29.    text-align: center;
  30.   }
  31.   </style>
  32. </head>
  33. <body>
  34.   <div id="formWrapper">
  35.   
  36.    <div id="title"> <a href="#" onclick="getInfo()" >读163主页</a></div>
  37.   </div>
  38.   
  39.   <div id="outputDiv">
  40.   </div>
  41. </body>
  42. </html>
复制代码

论坛徽章:
0
5 [报告]
发表于 2005-12-19 08:33 |只看该作者
在ie下可以 刚刚在ff下好像不可以

读服务器的都可以

[ 本帖最后由 ydlhero 于 2005-12-19 08:36 编辑 ]

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
6 [报告]
发表于 2005-12-19 09:23 |只看该作者
如果是你本地的文件,是可以读取的.


但是从特定域名来的只能读取这个域名的的.

是不能跨域的

[ 本帖最后由 HonestQiao 于 2005-12-19 10:15 编辑 ]

论坛徽章:
0
7 [报告]
发表于 2005-12-19 09:34 |只看该作者
原帖由 HonestQiao 于 2005-12-19 09:23 发表
如果是你本地的文件,是可以读取的.


但是从服务器来的只能读取这个服务器的.


还是版大说得对

我想这样是为了安全性 如果这样能行的话 就可以做木马了

论坛徽章:
0
8 [报告]
发表于 2005-12-22 20:07 |只看该作者
多谢几位~!
不能跨域,那我不用做下去了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP