2012-03-09 85 views
1

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

我已经尝试了一些只返回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调用,这样我就可以开始进行修改,包括来自我正在对数据库进行查询的数据。有没有人有这个简单的版本?这可能吗?

回答

2

你的例子没有意义。首先,它具有无效的语法(“hello world”是一个字符串,但没有引用)。其次,你想在你的asp代码中编码JSON,但是使用eval会是解码JSON的一种(错误的)方法。以下是我认为你可以做,使用克罗克福德的json2.js编码你的对象,像这样:

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

哇,谢谢你,这是非常容易整合。 – user1259824 2012-03-09 19:41:22