日期:2014-5-16 浏览次数:20392次

js读取文本到textarea中,为什么同样的代码放到服务器上为何就不行
<script language=vbscript>
Function bytes2BSTR(vIn)
  strReturn = ""
  For i = 1 To LenB(vIn)
  ThisCharCode = AscB(MidB(vIn,i,1))
  If ThisCharCode < &H80 Then
  strReturn = strReturn & Chr(ThisCharCode)
  Else
  NextCharCode = AscB(MidB(vIn,i+1,1))
  strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode))
  i = i + 1
  End If
   
  Next

  bytes2BSTR = strReturn
End Function
</script>
<script language="JavaScript">
function f(){
var xmlUrl = new ActiveXObject('Microsoft.XMLHTTP');
var r;
var filepath= document.getElementById("fileField").value
//alert(filepath);
xmlUrl.Open('GET',filepath);
xmlUrl.Send();
r=bytes2BSTR(xmlUrl.ResponseBody);
document.getElementById("Content").value = r;
}
</script> 

<input type="file" name="fileField" id="fileField" />
<input type="button" name="button" id="button" value="按钮" onclick="f()" />
<textarea id="Content" name="Content" rows="30" cols="30"></textarea>

本地执行没有问题,一放到服务器上用http://形式运行就报错,说没有权限,谢谢指点!

------解决方案--------------------
必须的,这是安全问题。要是你随意访问一个网站,爱情动作放哪个盘别人都知道了,你还有什么隐私?
------解决方案--------------------
探讨
必须的,这是安全问题。要是你随意访问一个网站,爱情动作放哪个盘别人都知道了,你还有什么隐私?

------解决方案--------------------
问题出在 这句代码上 var xmlUrl = new ActiveXObject('Microsoft.XMLHTTP');
这是调用客户端的ActiveX插件,所以会禁止访问.
解决方案:
1、将该地址放到信任站点,将信任站点的安全级别降到最低(不推荐).
2、使用文件上传传到服务器端,通过后台语言取文件内容后赋值给textrea。可以AJAX。
------解决方案--------------------
要不然用户也要选择要读取的文件不是吗,你可以做选择完就后台读取啊.走Ajax就是了.
设安全级别不可取,重做系统或升级IE后就白设了.