我从jquery调用一个经典的.asp页面来返回一个列表(使用JSONP)。我想使用JSONP,因为相同的原始政策会导致我的网站通过谷歌翻译查看时出现问题。我发现的所有解决方案的问题是他们假设asp页面使用VBscript作为服务器端语言。我使用javascript作为服务器端语言,在asp中连接到数据库并返回结果。
我尝试过一些只返回500个服务器错误的方法。这是我的jquery电话:
$.ajax({
dataType: 'jsonp',
url: 'website/page.asp',
success: function () {
alert(data);
},
});
这是我的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>
我想要做的就是创建一个简单的hello world JSONP调用,以便我可以开始修改它以包含我正在对数据库执行的查询中的数据。有没有人有这个简单的版本?这可能吗?
答案 0 :(得分:2)
你的例子毫无意义。首先,它具有无效的语法(“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 + ");");