2011-07-14 98 views
7

我一直保存所有json文件的擴展名爲.txt,他們使用jquery ajax調用。JSON文件擴展

當我改變擴展以.json,在我的jquery ajax調用 - jQuery.ajax() - 我指定

  • 數據類型: 「JSON」,
  • 的contentType:「應用/ json; charset = utf-8「,

這些文件不再有效。爲什麼這樣?

不是所有的json文件都有擴展名.json嗎?我正在使用IIS服務器。

JSON

{ "rows": [ 
    {"row":[ 
    {"cells": [ 
     {"data": "Edit"}, 
     {"data": "030194"} 
    ]} 
    ]}, 
    {"row":[ 
    {"cells": [ 
     {"data": "Add"}, 
     {"data": "030194"} 
    ]} 
    ]} 
]} 

jQuery的

jQuery.ajax ({ 
    type: "GET", 
    url: "localhost/ABC.json", 
    dataType: "json", 
    contentType: "application/json; 
    charset=utf-8", 
    cache: "false", 
    success: function(response){} 
}); 

有人能告訴我爲什麼擴展以.json不工作?它工作,如果我將其更改爲.txt

+0

你可以發佈你的代碼嗎? –

+3

問題出在您的Web服務器上的可能性很大。通過嘗試(可能嗎?),您完全濫用JSON的可能性更大。) 存儲數據。 – riwalk

+3

@ Stargazer712:我的錢在網絡服務器上。無法識別的內容/ MIME類型,因此文本(文本/純文本)不再具有有效的「內容類型」 –

回答

0

dataType:「json」不指定文件的類型是指定服務器將返回的數據的種類。從服務器端,例如,如果您使用的是PHP,則必須使用函數「json_encode」返回json字符串,以便dataType:「json」可以接受該字符串。

4

正確的擴展名是.json,MIME類型是application/json(參考:this Wikipedia page)。但是,一般來說,只要你的數據結構是有效的,你的web服務器正在做它應該做的事情,它就可以與任何擴展一起工作。

4

IIS捆綁了一堆MIME類型處理程序。這意味着當你輸入一個以.png結尾的URL時,IIS知道這是一個圖像,併發送適當的響應來告訴客戶端(瀏覽器)它是一個圖像(因此它可以像這樣呈現)。

.json默認情況下沒有MIME類型處理程序。您需要設置一個:

  • 加載IIS管理器
  • 瀏覽樹節點到你的Web應用程序或網站上的MIME類型的特徵(下窗格)
  • 單擊添加
  • 雙擊( RHS下的「添加」,或右鍵單擊並選擇添加)
  • .txt擴展字段下,並作爲application/json MIME類型

你完成了!嘗試在瀏覽器中請求JSON文件;如果它正確呈現(如文本),真棒。如果沒有,您可能不得不告訴IIS將其渲染爲text/plain