Server.createobject 将用于服务器本身的 VBScript/ASP 脚本。由于这个原因,客户端浏览器将无法支持服务器。
作为补充说明。您需要关闭文件对象(f),因为它会使文件保持打开状态并在您尝试再次写入时导致错误。此外,我添加了 ForAppending 位,以便您可以在 fso.opentextfile 中指定它。
所以要修复你的脚本:
<script runat="server" language="VBScript">
Function saveData()
Const ForReading As String = 1
Const ForWriting As String = 2
Const ForAppending As String = 8
Dim fso as Object
Dim f as Object
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile("ecr.txt", ForAppending, true)
f.WriteLine("osgfouds")
f.Close
End Function
</script>
编辑
这是来自->这里的更新问题
编辑
好的,看看你上一个问题和这个问题。事情是这样的:ASP 在服务器级别运行并将 vbscript 加载到网站界面中。直接附加到 ASP 的 Vbscript 将在服务器级别运行:
例如
<%
Const ForAppending = 8
dim fn,fp,fpn,wl,fulltext : fn = replace(formatdatetime(Now, 2), "/", "-") & ".txt"
Dim fso, msg : fp = "C:\Users\...\Desktop\Logs\"
fpn = fp & fn
dim sep : sep = "==========================================================================="&vbcrlf
dim ssep : ssep = vbcrlf & "--------------------------------------"
fso = CreateObject("Scripting.FileSystemObject")
dim IPAddress, HostName, LUname
IPAddress = Request.ServerVariables("remote_addr")
If (fso.FileExists("C:\Users\...\Desktop\Logs\" & fn)) Then
dim inSession,newuser
wl = fso.OpenTextFile(fpn, ForAppending, True)
inSession = fso.OpenTextFile("C:\Users\...\Desktop\Logs\" & fn, 1)
fulltext = inSession.ReadAll
'.....Code continues'
%>
因此,如果您尝试激活单击事件并将其附加到 VBScript 以写入服务器端的文件,这将不起作用,因为无论如何 vbscript 都会尝试将其写入客户端。
为用户条目更新设计的 asp/vbscript 的正确方法需要以下列方式执行:
浏览器 - 单击 -> 请求服务器 -> 服务器处理请求 -> 提供新页面 -> 浏览器
提供的证据->这里
但是,您仍然可以使用 XMLHTTPRequest 或 Ajax/Javascript 来激活脚本。实际上,有趣的是,我最近刚刚问了如何执行这样一个非常基本的脚本。所以这里是如何做到这一点:
You have your HTML file(whatever.html):
<head>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
<script type ="text/javascript" >
$(function () {
$("#button").click(function () {
$.get("test2.aspx", {
loadData: "John"
})
.done(function (data) {
if (data === "Fail") {
alert("Logging Failed!");
} else {
alert("Logged Success!");
}
})
.fail(function () {
alert("error");
});
});
});
</script>
</head><body>
<input type="button" id="button" value="Ecriture"></body>
你有你的 ASPX 文件(test2.aspx):
<%@ Page Language="VB" %>
<%
Dim LogData As String : LogData = Request.Params("loadData")
Dim SaveFile As String
Const ForReading As Integer = 1
Const StorageDirectory = "C:\Users\...\Desktop\Logs\serverlog.txt"
Const ForWriting As Integer = 2
Const ForAppending As Integer = 8
If Len(LogData) = 0 Then LogData = "{EMPTY STRING}"
Dim fso As Object
Dim f As Object
fso = CreateObject("Scripting.FileSystemObject")
f = fso.OpenTextFile(StorageDirectory, ForAppending, True)
f.WriteLine("New Entry:" & LogData)
f.Close()
If Err.Number <> 0 Then
SaveFile = "Fail"
Else
SaveFile = "Success"
End If
Response.Write(SaveFile)
%>
注意
StorageDirectory 必须是共享网络文件夹,以便服务器可以保持更新文件。
我已经测试了这段代码并且它有效。祝你好运