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

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

我尝试了一些只返回500个服务器错误的方法。 这是我的jquery调用:

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

这是我的page.asp:

    var jsonValue = eval('('hello world')'); Response.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 + ");");