2012-12-28 36 views
1

我正在使用html5製作一個網頁。問題是我從一個網址獲取JSON並在控制檯上打印其結果。我在函數中獲得預期的結果,但沒有得到它。即使變量是全局的。請參見下面的代碼

<script src="jquery-1.8.3.min.js"></script> 

<script> 
$(document).ready(function(){ 
    var result; 
    $.ajax({ 
     type: 'GET', 
     url: 'http://192.168.1.5:3333/abc.json', 
     async: false, 
     jsonpCallback: 'jsonCallback', 
     contentType: "application/json", 
     dataType: 'jsonp', 
     success: function(data) { 
      //var result = $(this).html(JSON.stringify(data)); 
      //console.log(JSON.stringify(data)); 
      result = JSON.parse(JSON.stringify(data)); 
      console.log(result); // Result : 1 
     }, 
     error: function(e) { 
      alert(e.message); 
     } 
    }); 

    console.log("here::"+result); // Result : 2 
}); 
</script> 

我得到的結果

2 here:undefined 
    1 object      (json) 

我需要這個JSON解析。

+0

嗯,'異步:FALSE'和'數據類型:「jsonp''似乎相互矛盾。 –

回答

3

的文檔是這個相當明確:

跨域請求和數據類型:「JSONP」請求不支持同步操作。

基本上,這意味着您的async: false根本沒有被使用,這解釋了行爲。

參見:jQuery.ajax()

+0

所以你的意思是說我現在不能在JavaScript中使用json,如果我可以那麼...... – shark

+0

@shark你可以使用'jsonp',沒問題;但你只需要使用異步。 –

+0

你能告訴我怎麼用一些例子...我是一個新手.. – shark