2012-05-03 38 views
1

我有一個從另一個域獲取JSON數據的函數,但我不知道它有什麼問題。它永遠不會觸發成功功能,並且不會返回任何錯誤。Ajax請求跨域json數據並顯示?

$.ajax({ 
    url: "http://other-domain.com/sample/Json.aspx", 
    dataType: "jsonp", 
    type: 'get', 
    crossDomain: true, 
    jsonp: 'jsonp_callback', 
    success: function() { 
     alert('abc'); //when success take json data string but i din get in here 
    } 
}); 

有人知道這裏有什麼問題嗎?

+0

什麼螢火蟲對你說? – zerkms

+1

問題應該使用包含全部單詞和大寫字母的連貫句子來問......讓您認爲我們將回答一個問題,您不會花費超過5秒的時間寫作? – Matt

+1

沒有對我說 – user983738

回答

1

嘗試:

$.get('http://other-domain.com/sample/Json.aspx', function(data) { 
    alert(data); 
}); 

你應該得到一個JSON字符串警報(這實際上是一個字符串),比使用它jQuery.parseJSON(data),你會得到一個JSON對象上下工夫。

如果這不起作用,也許你需要檢查你的參數。

編輯:

我只是試圖建立這個網頁現在:

<head> 

    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 

    <script> 

     $(document).ready(function(){ 

      $.getJSON('http://api.flickr.com/services/feeds/photos_public.gne?tags=cat&tagmode=any&format=json&jsoncallback=?',function(data){ 

       alert(data.title); 

      }); 

     }); 

    </script> 

</head> 

<body> 

    ... WHATEVER ...   

</body> 

,它工作得很好,它提醒第一標題元素在數據對象。

+0

JSON-P請求不應該給你一個JSON字符串。它應該給你一個JavaScript對象。爲什麼使用這種語法會給直接的'$ .ajax'調用帶來不同的結果? – Quentin

+0

我以前試過這個功能,不能跨域數據。 – user983738

+0

我不是說它會更好,他說他需要獲得一些JSON的東西,他也可以嘗試$ .getJSON()。它更簡單,用更少的東西來設置。 – Onheiron