';JSON';为空或不是对象';经典ASP中的错误
我得到了标题中的错误——JSON为null或不是对象 我在一个经典的ASP页面内。我的json2.js文件与我所在的这个经典asp页面位于同一目录中。所以我不知道为什么服务器似乎无法识别JSON.parse()方法。 我的脚本语言是JScript 我注意到,在另一个线程中,使用json2.js库是一个不错的选择。但我似乎没法让它发挥作用。这是个怪癖吗?这应该很简单,不是吗 requestBody是一个简单的JSON对象:[{“answer”:“ok”},{“answer”:“sunny”}] 谢谢';JSON';为空或不是对象';经典ASP中的错误,json,asp-classic,jscript,Json,Asp Classic,Jscript,我得到了标题中的错误——JSON为null或不是对象 我在一个经典的ASP页面内。我的json2.js文件与我所在的这个经典asp页面位于同一目录中。所以我不知道为什么服务器似乎无法识别JSON.parse()方法。 我的脚本语言是JScript 我注意到,在另一个线程中,使用json2.js库是一个不错的选择。但我似乎没法让它发挥作用。这是个怪癖吗?这应该很简单,不是吗 requestBody是一个简单的JSON对象:[{“answer”:“ok”},{“answer”:“sunny”}] 谢
<script language="javascript" runat="server" src="json2.js"></script>
<%
var jsonObject = JSON.parse(requestBody);
%>
不确定,但我要做的第一件事是检查json2.js上的权限。使用icacls.exe,并验证该文件上的权限是否与.ASP页本身上的perm匹配。我这样做:
%windir%\system32\icacls.exe json2.js /grant "NT AUTHORITY\IUSR:(RX)"
%windir%\system32\icacls.exe json2.js /grant "BUILTIN\IIS_IUSRS:(RX)"
另外-为了帮助调试ASP,您可以在IIS管理器中修改ASP调试设置。单击“向客户端发送错误”以在客户端浏览器窗口中查看错误
或者,您可以手动将其添加到web.config:
<configuration>
<system.webServer>
<httpErrors errorMode="Detailed" existingResponse="PassThrough" />
<asp scriptErrorSentToBrowser="false" />
</system.webServer>
</configuration>
这不会解决“JSON不是对象”的问题,但它会在出现故障时为您提供更好的错误消息。在.NET Framework 3.5中,有一个类可以帮助反序列化JSON对象。您还可以使用第三方库,例如。应该可以使用,刚刚制作的快速测试用例 您需要尝试的事情:
json2.asp
,并更改为:
<script language="javascript" runat="server" src="json2.asp"></script>
mime类型和类似的东西可能有问题json2.asp
,而不是浏览到您自己的页面如果仍然不走运,请说明您使用的确切服务器和平台,也许有人会有新想法。问题是关于经典ASP(ASP.NET之前)。非常感谢。你有一些非常深入的知识。
<script language="javascript" runat="server" src="json2.asp"></script>