使用Javascript服务器端编码从经典ASP返回JSONP
我正在从jquery调用classic.asp页面以返回一个列表(使用JSONP)。我想使用JSONP,因为当通过google translate查看我的网站时,同源策略会导致问题。我发现的所有解决方案的问题是,它们假定asp页面使用VBscript作为服务器端语言。我使用javascript作为服务器端语言,在asp中,连接到数据库并返回结果 我尝试了几种只返回500个服务器错误的不同方法。这是我的jquery调用:使用Javascript服务器端编码从经典ASP返回JSONP,javascript,jquery,json,asp-classic,jsonp,Javascript,Jquery,Json,Asp Classic,Jsonp,我正在从jquery调用classic.asp页面以返回一个列表(使用JSONP)。我想使用JSONP,因为当通过google translate查看我的网站时,同源策略会导致问题。我发现的所有解决方案的问题是,它们假定asp页面使用VBscript作为服务器端语言。我使用javascript作为服务器端语言,在asp中,连接到数据库并返回结果 我尝试了几种只返回500个服务器错误的不同方法。这是我的jquery调用: $.ajax({ dataType: 'jsonp', url: '
$.ajax({
dataType: 'jsonp',
url: 'website/page.asp',
success: function () {
alert(data);
},
});
下面是my page.asp:
<%@ 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>
var jsonValue=eval(“('hello world')”);
Write(jsonValue);
我所要做的就是创建一个简单的hello world JSONP调用,这样我就可以开始修改它,以包含我正在对数据库执行的查询中的数据。有人对此有一个简单的版本吗?这可能吗?你的例子毫无意义。首先,它的语法无效(“hello world”是一个字符串,但没有被引用)。其次,您希望在asp代码中对JSON进行编码,但使用eval将是一种(错误的)JSON解码方法。我认为您可以使用Crockford的json2.js对对象进行编码,如下所示:
var sourceObj = { "testkey" : "test value", "otherkey" : 5 };
var jsonstr = JSON.stringify(sourceObj);
Response.Write("yourjsonpCallbackName (" + jsonstr + ");");