2011-07-14 32 views
7

拡張子が.txtのすべてのjsonファイルを保存していて、jquery ajax呼び出しで作業しました。JSONファイル拡張子

私は.jsonと私のjqueryのAJAX呼び出しにする拡張子を変更 - jQuery.ajax() - 私は

  • のdataType指定: "JSON"、
  • のcontentType:「アプリケーションを/ json; charset = utf-8 "、

これらのファイルは機能しなくなりました。なぜそうなのか?

すべてのjsonファイルに.jsonという拡張子を付ける必要はありませんか?私はIISサーバーを使用しています。延長.jsonが機能しない理由

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){} 
}); 

は、誰かが私に教えていただけますか?もしそれを.txtに変更すると動作します。

+0

コードを投稿できますか? –

+3

問題があなたのWebサーバーであることはまともなことです。あなたがJSONを悪用している可能性はさらに高いです(おそらく?)はデータを格納します。 – riwalk

+3

@ Stargazer712:私のお金はWebサーバーにあります。認識できないコンテンツ/ MIMEタイプなので、テキスト(text/plain)は有効な 'Content-Type'を持っていません –

答えて

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タイプハンドラがありません。 ([追加]をクリックし

  • MIMEタイプのウェブアプリやウェブサイト
  • ダブルクリックにツリーノードまでは(下のペイン)を備えていブラウズ
    • 負荷IISマネージャ:あなたは1セットアップを設定する必要があります
    • )「追加」、または右クリックし、[追加]を選ぶ下のRHSは、拡張フィールドの下.txtを入れapplication/json
    • MIMEタイプとして

    あなたは終わった!ブラウザでJSONファイルをリクエストしてみてください。それが正しく(テキストとして)レンダリングされれば、素晴らしいです。そうでない場合は、代わりにIISにtext/plainと表示する必要があります。

  • 関連する問題