使用Javascript服务器端编码从Classic ASP返回JSONP

Return JSONP from Classic ASP with Javascript server side coding

本文关键字:ASP 返回 JSONP Classic Javascript 服务器端 编码 使用      更新时间:2023-09-26

我从jquery调用一个经典的.asp页面来返回一个列表(使用JSONP)。我想使用JSONP,因为当我的网站通过谷歌翻译查看时,同源政策会导致问题。我找到的所有解决方案的问题都是,他们认为asp页面使用VBscript作为服务器端语言。我使用javascript作为服务器端语言,在asp中,连接到数据库并返回结果。

我尝试了几种不同的方法,但只返回了500个服务器错误。这是我的jquery调用:

$.ajax({
  dataType: 'jsonp',
  url: 'website/page.asp',
 success: function () {
    alert(data);
  },
});

这是我的网页.aspx:

<%@ language="Javascript" %>
<script language="javascript" runat="server" src='json2.js'></script>
<script language="javascript" runat="server">
var jsonValue = eval('('hello world')');
Response.Write(jsonValue);
</script>

我所想做的就是创建一个简单的helloworldJSONP调用,这样我就可以开始修改它,以包含我正在对数据库进行的查询中的数据。有人有简单的版本吗?这可能吗?

您的示例毫无意义。首先,它有无效的语法("helloworld"是一个字符串,但它没有被引用)。其次,您希望在asp代码中对JSON进行编码,但使用eval解码JSON是一种(错误的)方式。以下是我认为您可以使用Crockford的json2.js对对象进行编码的方法,如下所示:

var sourceObj = { "testkey" : "test value", "otherkey" : 5 };
var jsonstr = JSON.stringify(sourceObj);
Response.Write("yourjsonpCallbackName (" + jsonstr + ");");