实际上我所有的服务器访问都是通过AJAX..。我的服务器端文件打开到我的sql-server数据库的连接,或者写入或读取当前表。
我将我的数据作为JSON字符串保存在我的sql-server表中。例如:
[ {"score":"game","bet":"20"},
{"score":0,"bet":"10"},
{"score":1,"bet":"11"},
{"score":2,"bet":"12"},
{"score":3,"bet":"13"},
{"score":4,"bet":"14"},
{"score":5,"bet":"15"},
{"score":6,"bet":"16"},
{"score":7,"bet":"17"},
{"score":8,"bet":"18"},
{"score":9,"bet":"19"}
]
我发现我需要在服务器上进行一些验证和验证。理想情况下,我希望将该字符串从表中取出,将其转换为JSON (通过JSON.Parse() )执行验证/验证,然后根据结果将响应返回给客户端。
我看过Node.js,但我并不能将整个服务器从IIS移动到Node.js。理想情况下,我希望能够在我的标准ASP页面中处理javascript。
*********** * 2013年12月12日星期五
下面是AJAX调用的文件中的大部分源代码:
<script runat="server" src="scripts/json2.js"></script>
<%
var JSONstr;
var GridId;
var password;
var where;
var adoConn;
var adoComm;
var adoRS;
var json;
adoConn = Server.CreateObject("ADODB.Connection");
adoComm = Server.CreateObject("ADODB.Command");
adoRS = Server.CreateObject("ADODB.Recordset");
adoConn.ConnectionString = footballConnStr;
adoConn.Open();
GridId=Request.Form('GridId');
where = "Id = '" +GridId +"'"
password=Request.QueryString('password');
adoRS.ActiveConnection = adoConn;
adoRS.CursorType = 3; // So I can use RecordCount Property
adoRS.Source="SELECT GridBets FROM _Games WHERE " +where
// **这是我的小测试,以查看来自JSON2.js的JSON对象是否正在加载
json = {};
JSONstr = JSON.stringify(json); // it is failing on this line...
// **
adoRS.Open();
var rslt = "{ digits:" +adoRS('GridBets') +"}";
adoRS.Close();
Response.Write( rslt );
Response.End();
/*
发布于 2013-12-10 00:51:09
最好的选择是为ASP使用一个JSON库。但是,您还没有说明是否使用了经典的ASP?
ASP.NET的一些选项:
此外,也有许多类似的问题正在讨论之中:
发布于 2018-11-08 04:06:00
你已经接近解决方案了。json2.js可以使用VB或Javascript完美地处理asp经典。
但是,当您使用<%@ language=" javascript“%>初始值时,在服务器端javascript包含之前,将执行<% %>之间的所有代码。
因此,运行中的解决方案可以是将javascript代码放在外部JS文件中,或者将其设置在脚本runat=“%>”之间的asp文件中,而不是<% %>。
样本json.asp:
<%@ language="javascript" %>
<script language="javascript" runat="server" src="json2.js"></script>
<script language="javascript" runat="server">
var s = JSON.stringify({aaa: "bbb"});
Response.Write(s + '<br>');
var obj = JSON.parse('{"ccc": "ddd"}');
Response.write(obj.ccc + '<br>');
</script>
<script runat="server" language="vbscript">
response.write "some vbscript code<br>"
</script>
<%
try{
var obj = {a: "a", b: "b"};
Response.Write(JSON.stringify(obj));
}catch(e){
Response.Write("ERR: " + e.message + "<br>")
}
%>
产出如下:
some vbscript code
ERR: 'JSON' is undefined
{"aaa":"bbb"}
ddd
如您所见,我们在{"a":"b"}之前得到"ERR:“输出,因为在脚本标记之间运行任何服务器端javascript之前都会执行<% %>之间的代码。但是,您可以看到脚本标记之间的vbscript代码是在其他任何东西之前执行的,即使是在后面定义的!
https://stackoverflow.com/questions/20483220
复制相似问题