js原始请求数据,注意content数据必须加上双引号或者单引号,将里面的json格式的数据转成字符串,给传递给asp页,
因为asp接受json数据的话,是object类型,没办法处理!只能变通转成字符串,再在后台处理一下,还原成json数据!
<script type="text/javascript">
$.post("ajaxtest.asp",{name:"测试",content:'{col:"111",sec:"22",ff:{aa:"11"},three:"555"}'}
,function(data){
$("#result").html(data);
});
</script>
接受页ajaxtest.asp
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%
response.Charset="utf-8"
name=request.Form("name")
content=request.Form("content")
set conJson=Server.CreateObject("Scripting.Dictionary")
%>
<script language="JScript" runat="Server">
function JsonToDiction(str)
{
eval("var tempstr="+str);
var tempdic=Server.CreateObject("Scripting.Dictionary")
ForJson(tempstr,tempdic);
return tempdic;
}
function ForJson(obj,refArray)
{
for(i in obj)
{
if(obj[i] instanceof Object)
{
var tempref=Server.CreateObject("Scripting.Dictionary")
refArray.Add(i.toString(),tempref);
ForJson(obj[i],tempref);
}
else
{
refArray.Add(i.toString(),obj[i]);
}
}
}
</script>
<%
call ForJson(request.Form("content"),conJson)
set conJson=JsonToDiction(content)
response.Write(conJson("ff")("aa"))
%>
这样就能接收到所有的json数据了。而且没有数量限制,以后在前台表单字段的时候,直接放内容放到content里面,到asp页面里面接收就可以了,不必专门再改js函数了。!方便!