在经典ASP页面中编写JSON,以及对Http响应的一般(错误)理解

Writing JSON in Classic ASP page, and general (mis)understanding of Http Response

本文关键字:响应 Http 理解 错误 ASP 经典 JSON      更新时间:2023-09-26

我有一个经典的ASP页面(VBscript),它在服务器端生成XML,然后响应。写它。该页面根本没有客户端。

然而,我需要将其转换为JSON。因为我找不到一个ASP服务器端工作的方式(完全不同的主题),我在客户端用我找到的Javascript代码做了它,最后的文档。将它写入页面

问题是,结果是不一样的:如果之前的http响应只是一个XML,现在的响应是javascript代码,它写JSON到浏览器,而不是响应。我理解得对吗?

换句话说,如果之前我用xml作为响应,现在响应是这样的:

    <script type="text/javascript">     
        var xmlObj = parseXml('<%=resultXml%>');    
        var json = xml2json(xmlObj);    
        document.write(json);
    </script>   

整个代码块由ASP通过如下方法调用:

sub writeJsonResult(resultXml) 
% > 
        the above javascript is here
< %     end sub
% >

所以,浏览器显示了JSON,但是使用它的服务没有得到它需要的RESPONSE。是否有一种方法来编写JSON作为响应?我觉得我错过了一些东西,不太明白。

服务期望得到JSON。

你给它一个HTML文档包含客户端JavaScript动态写入JSON到页面。

你需要给它实际的JSON,所以你需要想办法用ASP生成JSON

正如@Quentin指出的;

服务期望得到JSON

这意味着试图通过处理JSON客户端来解决这个问题是行不通的,因为这意味着您已经发送回text/html HTTP响应而不是application/json响应。这是无法回避的你必须处理XML以在服务器端构建JSON结构然后使用

返回它
Response.ContentType = "application/json"
有很多经典ASP的JSON库,有些很好,有些很棒,有些很糟糕。你只需要浏览一下,看看哪一个适合你,如果你正在寻找一个推荐,ASPJSON.com可能是最广泛使用的库(但奇怪的是,该网站目前似乎关闭了)

如果可能的话,在生成XML的地方使用上面描述的库将其替换为JSON,其中大多数库支持直接从数据库构建JSON结构,节省了您自己从XML解析和构建JSON的时间。


的有用链接

  • 有什么好的库解析JSON在经典ASP?[关闭]

  • 经典ASP JSON类(网站当前关闭)

  • JSON对象类3.4.1 by RCDMK