几乎我所有的服务器访问都是通过AJAX ...我的服务器端文件打开与我的sql-server数据库的连接,并写入或读取当前表。
我将我的数据保存在我的sql-server表中作为JSON字符串。例如:
[ {"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月13日星期五 * ** * ** * **** < / p>
以下是AJAX调用文件的大部分源代码:
&LT;%@ LANGUAGE = “JAVASCRIPT” %&GT;
<script runat="server" src="scripts/json2.js"></script>
&LT;%
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();
/ *
答案 0 :(得分:0)
最好的办法是为ASP使用JSON库。你有没有说明你是否使用经典的ASP?
ASP.NET的一些选项:
SO上还有许多类似的问题:
答案 1 :(得分:0)
您即将找到解决方案。 json2.js可以使用VB或Javascript与ASP Classic完美配合。
但是,当您使用<%@ language =“ javascript”%>初始化程序时,<%%>之间的所有代码都将在服务器端JavaScript包含之前执行。
因此,正在运行的解决方案可以是将您的javascript代码放在外部JS文件中,或将其设置为 script runat =“ server” 之间的asp文件,而不是 <%%> 。
json.asp示例:
def append_md(lst, idx, value):
for i in idx:
lst = lst[i]
lst.append(value)
append_md(bins, idx, obj)
输出为:
<%@ 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>")
}
%>
如您所见,我们在{“ a”:“ b”}之前获得了“ ERR:”输出,因为<%%>之间的代码是在脚本标记之间运行任何服务器端JavaScript之前执行的。 但是,您看到脚本标记之间的vbscript代码在执行任何其他操作之前都已执行,即使在之后定义!