2011-01-21 47 views
1

我試圖用$ .getJSON向我的網站發出跨域請求,但它不工作:回調函數沒有調用。我發現這個簡單的例子:

$.getJSON('http://twitter.com/users/usejquery.json?callback=?', function(data) { 
    console.log(data); 
}); 

而且它適用於twitter,但不適用於我的網站。我複製了文件被返回,服務器響應頭從Twitter,它仍然無法正常工作。我不知道如何調試它並找出問題所在。

任何人都知道它是什麼?

+0

什麼是您的網站上運行?它是PHP,ASP .Net Web窗體,ASP .Net MVC,Ruby on Rails?有關您的設置的更多信息將有所幫助。 – ilivewithian 2011-01-21 10:11:52

回答

1

您還有JSONPcallback參數的訣竅是,它不是JSON,這是返回的,但帶有「JSON」參數的JavaScript函數調用。查看所提到的Twitter API調用的結果作爲示例。

jQuery.ajax()文檔還簡要介紹了這一點(搜索dataType和JSONP)。

至於爲什麼Twitter響應的副本不起作用:getJSON調用的callback=?部分將填充隨機函數名稱。 jQuery構成的名稱不會與任何已存在的函數衝突,並在之後刪除該函數。