2011-07-09 15 views
1

任何數據,這似乎是工作完美無缺。jQuery的.getJSON沒有得到我使用的是菲爾鱘魚的REST接口笨<a href="https://github.com/philsturgeon/codeigniter-restserver" rel="nofollow">https://github.com/philsturgeon/codeigniter-restserver</a>從笨REST接口

另一臺服務器上,我試圖使用jQuery來檢索JSON數據。

首先我檢查了我的js是否通過使用jQuery的文檔在Flickr的例子搞砸了。這工作正常。

但當我代替我的網址我似乎沒有得到任何迴應。

  $.getJSON("http://myurl/apps/api/micronews/community/db/mydb/city/mycity/format/json/?jsoncallback=?", 
      function(data) { 
      console.log ('show me the data'); 
      }); 

我也試着相當於Ajax請求:

$.ajax({ 
    url: "http://myurl/apps/api/micronews/community/db/mydb/city/mycity/format/json/", 
    dataType: 'jsonp', 
    success: function(results){ 
    console.log(results); 
    } 
}); 

在外部服務器上的訪問日誌顯示GET請求/應用/ API/micronews /社區/ DB/MYDB /城市/ mycity/format/json /?callback = jQuery151029825189273083685_1310236439746 & _ = 1310236439748和200響應。

從瀏覽器直接敲擊該頁面返回的JSON編碼數據。

由於GET參數的URL字符串,它不應該使用CodeIgniter配置不正確的問題。訪問日誌似乎表明GET請求沒有問題。

回答

0

嘗試使用這樣的:

$.getJSON("http://myurl/apps/api/micronews/community/db/mydb/city/mycity/format/json/?callback=?", 
    function(data) { 
    console.log ('ready to handle data'); 
    }); 
+0

似乎無聲無息地失敗。也許這是JSON格式。以下是Flickr返回的內容http://api.flickr.com/services/feeds/photos_public.gne?tag=cat&format=json&jsoncallback=?鱘魚的界面返回[{「id」:「2670」,「case_no」:「012011071146」,「date」:「20110509」] – wmfox3

+0

啊。 CodeIgniter實際上遇到了一個非常有趣的問題。默認情況下,CI銷燬所有的GET參數。你需要重新啓用CI配置文件中的查詢字符串(所以'$ this-> get()'實際上會返回一些內容)才能使它工作。 – Femi

+0

切換$ config ['uri_protocol'] ='QUERY_STRING';導致CodeIgniter返回一個錯誤。充其量,Firebug控制檯以200 OK顯示紅色的GET調用,但響應中沒有任何內容。所以我認爲這個問題在於CodeIgniter如何處理請求。 – wmfox3

0

爲什麼不直接使用$.ajax()然後你就可以在crossDomain:true通過擔心JSONP回調包裝的呢?

+0

似乎我得到了沒有任何數據的200響應。 – wmfox3

1

對我來說,解決工作: 在application/config/config.php進行這些更改:

$config['uri_protocol'] = "PATH_INFO"; 
$config['enable_query_strings'] = TRUE 

保存我的夜晚!

1

我想這就是爲什麼安全過濾功能起作用。

安全篩選功能在調用新控制器時自動調用。它具有以下功能:

如果$配置[ 'allow_get_array']爲FALSE(默認爲TRUE),破壞了全球GET陣列。

http://codeigniter.com/user_guide/libraries/input.html

所以,儘量$config['allow_get_array'] = TRUE或使用POST方法。

相關問題