2014-02-13 91 views
-1

我正在使用JSONP我的目標很簡單,返回的數據必須顯示在我的div中。該代碼目前不顯示任何內容。我還集成了我的項目中jquery.jsonp.js我的路徑:實現JSONP函數

    PRJFOLDER->WEBPages->JavaScript->query.jsonp.js 

index.html文件是在路徑:

    PRJFOLDER->WEBPages->index.html 

我的代碼:

<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     <title>JSP Page</title> 
     <script type="text/javascript" src="http://www.jquery4u.com/function-demos/js/jquery-1.6.4.min.js"></script> 
     <script> 
      function getData(url, data, callback) { 
      $.ajax({ 
       url : url, 
       type : 'post', 
       jsonp: "callback", // Needed for jsonp 
       dataType: "jsonp", // Also needed for jsonp 
       timeout : timeout, 
       data : data || {}, 
       success : function(data) { 
       callback(data); 
       } // Omitted failure for this example 
      }); 
      } 
     </script> 

    </head> 
    <body> 
     <h1>Hello World!</h1> 
     <script> 
       var data = {}; 
       var url = 'http://feeds.delicious.com/v2/json/popular?callback=?' 

       getData(url, {}, function(result) { 
       console.log(result); 
       data = result; 
       }); 

       $('#post-result').append(JSON.stringify(data)); 
     </script> 

     <div id='post-result'></div> 
    </body> 
</html> 

任何人都可以請協助我顯示輸出

+2

什麼是'jquery.jsonp.js'? –

+2

如果jsonp.js使用jQuery,那麼您需要重新排序腳本 – Anton

+1

您的包含的順序是錯誤的。 –

回答

2

首先,刪除jsonp。這是沒有必要的。 現在請記住,當您使用jsonp時,服務器將發送一個函數作爲返回值而不是對象。

幸運的是,jquery支持jsonp並將對象字面值作爲值。 只需確保您的api url支持jsonp。

請參見下面的代碼:

function getData(url, data, callback) { 
$.ajax({ 
    url : url, 
    type : 'post', 
    jsonp: "callback", // Needed for jsonp 
    dataType: "jsonp", // Also needed for jsonp 
    timeout : timeout, 
    data : data || {}, 
    success : function(data) { 
    callback(data); 
    } // Omitted failure for this example 
}); 

在此之後,您將需要一個函數來獲得的價值:

var data = {}; 
var url = 'http://feeds.delicious.com/v2/json/popular?callback=yourFunction' 

getData(url, {}, function(result) { 
console.log(result); 
data = result; 
}); 

現在你已經得到了你的數據,你可以輕鬆地添加它在你的html中通過模板或作爲原始文本

原始文本:

$('#post-result').append(JSON.stringify(data)); 

哦,我強烈建議你把你的應用程序代碼放在結束標籤之前。