2011-05-26 33 views
0

我想從解析包含JSON數據的URL JSON數據,但其擴展名不以.json解析JSON文件誰的URL擴展並沒有以.json

當我嘗試使用下面的代碼來請求響應URL它用200個狀態碼發出ajax請求。

但我嘗試與包含相同的數據與.json擴展名的其他網址,它的工作原理。

這裏是我的javascript代碼

var url='http://jsonurl.com/jsondata'; 
jQuery.ajax({ 
    url: url, 
    dataType: 'json', 
    success: function(d){ 
     jQuery.each(d,function(i){ 
     console.log(i); 
    }); 
    } 
}); 

所以我想解決方案來分析在JavaScript或jQuery的文件的JSON內容,這不必須以.json擴展名,但包含JSON數據。

+0

您確認URL返回的內容嗎?我不認爲這個擴展對jQuery很重要。 – 2011-05-26 13:55:04

+0

文件擴展名無關緊要,重要的是該文件中的JSON是有效的,儘管'Content-type:application/json'不會傷害。 – 2011-05-26 14:03:59

+0

這是我試圖解析的網址:http://api.tweetmixx.com/topics/318/tweeters – 2011-05-26 14:13:54

回答

1

經過與API支持團隊的討論,我發現了確切的問題。 其實問題出在內容類型上。他們爲那個json數據實現了一些緩存系統,當我的腳本向API url發出請求時,它發送該json數據並創建它的緩存,並且該緩存在一段時間內保持活動狀態。如果我的腳本創建相同的請求,那麼從緩存中提供的json數據的內容類型不是json。

現在他們正在處理這個問題。

順便說一句,感謝彼得的幫助。 :)

2

更正:現在看到上面的示例url和內容類型是正確的,所以這是一個紅鯡魚的位。

擴展並不重要。 但是你打電話的URL需要返回正確的內容類型,這將是application/json說到我們的應用程序使用text/javascript,因爲我相信瀏覽器有點寬鬆。

所以在我的情況下,我所說的JSP getJSON.jsp,設置它的內容類型,這樣

<%@ page language="java" contentType="text/javascript; charset=UTF-8" pageEncoding="UTF-8"%> 

我猜測,當您使用以.json extention服務器與正確的類型,但你回來其他擴展不會。