2012-03-09 117 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