2011-08-03 50 views
5

我希望有人能幫助我。我試圖做一件非常基本的事情:使用Jquery從MVC3控制器中獲取Json。控制器返回JSON的很好,如果我直接http://www.youtipit.org/api/GetTipitByUrl?url=http://utipi.it/t/1834從瀏覽器中調用URI的,但我得到一個空的結果(螢火蟲)當我試圖做到以下幾點:Ajax調用從MVC3控制器獲得Json

$.getJSON('http://www.youtipit.org/API/GetTipitByUrl?url=http://www.youtipit.org/t/J1833', null, 

       function(data) { 

        if (data) { 
        alert('It Works!!'); 
        alert(data); 
        } 
       }); 

的螢火,我收到了200碼,但迴應是空的。我確定有一些簡單的東西,我可以在Javascript中做到這一點,但我是新來的。

回答

4

您可能違反了same origin policy限制。除非您的網站託管在www.youtipit.org上,否則您無法向其發送AJAX請求。有兩種可能的解決方法,此限制:

  • 遠程站點支持JSONP(注意與JSON的差)在這種情況下,JSON響應被包裹在一個特殊的回調函數。爲此,遠程服務器必須支持它。如果是這種情況,請檢查API的文檔。您顯示的示例網址以及在瀏覽器中運行的示例網址將返回純JSON。
  • 如果遠程服務器不支持JSONP,但僅發送XML或JSON,則必須在您的域上編寫一個控制器操作,該操作將充當您的域和遠程域之間的橋樑。然後,您將向此控制器操作發送AJAX請求,然後將使用WebClient向遠程域發送HTTP請求。
+0

很好的回答....它指出了我正確的方向。你是正確的建議使用JSonp。 這篇文章告訴我如何實現一個JSONP結果,現在我得到我的Json: [link] http://stackoverflow.com/questions/4795201/asp-net-mvc-3-jsonp-does-this-work- with-jsonvalueproviderfactory [/ link] 你節省了我很多時間,謝謝。如果你有興趣,我會給你一個關於[鏈接] http://www.youtipit.org [/ link]的比特幣小費(請注意,這是我共同創建的網站,用於獎勵在線幫助其他人的網站)。 再次感謝。 – kSeudo

相關問題