2012-01-26 24 views
1

我目前有一個API,允許消費者通過API密鑰使用。他們可以用cURL或任何其他腳本語言進行調用 - 但他們無法調用查看$ .getJSON()。沒有結果返回,只有一個HTTP 200代碼。允許API的消費者訪問視圖jQuery getJSON

是否需要將crossdomain.xml文件添加到我的服務器的根目錄或者有其他方法嗎?任何幫助將不勝感激。

回答

1

如果您嘗試在瀏覽器上運行某個JavaScript,請求訪問其他域,則由於same origin policy而無法實現。您可以通過在提供Web內容的域上設置代理來代替JavaScript訪問您的API,從而解決此問題。

crossdomain.xml特定於Flash,不會影響JavaScript。

+1

爲什麼可以做到$ .getJSON(「HTTP:/ /api.twitter.com/「,function(data){// something}); ?你應該可以做$ .getJSON到另一個域來獲得結果 - 對嗎? – gregavola

0

用$ .getJSON傳遞的回調函數必須滿足兩個條件:

  • 它的參數必須以正確的順序
  • 它必須具有API的哪些期望它
  • 服務器上的接收器功能

這裏有一個圖:

 

CLIENT     SERVER 
------     ------ 

Makes URL request  Looks up function matching this URL 

Executes asynchonously If found, executes function asynchonously 

Returns from callback Returns data from server side function, or error 

相關問題