2011-01-25 15 views
3

私はJSONデータを返す必要があるWebサービスに取り組んでいます。 I read that I should use application/jsonこれが原因で発生する可能性のある問題は何ですか?MIMEタイプapplication/json原因を使用する際に、どのような問題が発生する可能性がありますか?

たとえば、古いブラウザではサポートされますか? (IE6 +、FF、Operaなど)

また、企業ファイアウォール/プロキシサーバーの背後にいるユーザーがMIMEタイプapplication/jsonをブロックする可能性はありますか?

このアドバイスに従っていた問題はありますか?

答えて

3

IEを考えてみましょう。ファイルのダウンロードをリクエストするために使用する非表示のiFrameがあるとします。たとえば今

<iframe src="getFile?id=123"> 

のために、サーバは、そのエラーメッセージがapplication/jsonとして送信されている場合はJSONテキストが間違っているので、ダウンロードダイアログが表示されます

{ 
    error: 'File 123 does not exist', 
    retryLater: false 
} 

のようなJSONエンコードされたエラーメッセージを送信することができます実際のファイルの場合

一方、MIMEタイプがtext/plainの場合、メッセージはiFrameでレンダリングされ、それを抽出して、JScriptを使用してファンシーなポップアップなどに変換することができます。


(編集)

実世界の例:EXTJS Fileupload - Problem with IE8 security bar

+0

ありがとうpumbaa80、また、下のEricが言ったことを考えれば、text/x-jsonを使うのが一番良いかもしれません。 –

+0

私は、 'text/x-json'もダウンロードダイアログを表示するようになったので、iframeの内容に' text/plain'が必要です。また、[uploading](http://yuilibrary.com/projects/yui2/ticket/2528941)は、ダウンロードするよりもはるかに便利な例です。 – user123444555621

1

これは、前に議論されている:

What is the correct JSON content type?

MIMEタイプをブロックする任意のファイアウォールはすべてのAJAXスタイルのWebアプリケーションで問題が発生しますので、私は本当にそれを心配しないでしょう。

+0

あなたのコメントをありがとう、はい私はあなたが指摘した疑惑を読んでいます。私はより現実的な具体例を探していました.SOユーザの中には経験があるかもしれません。 Pumbaa80のように以下の答え。ファイアウォールについてよく知っておいてください。ありがとう –

1

はちょうど私が見つけたこれで自分自身をIE8との長い戦いを持っていたこと、あなたはテキストとしてインラインフレームにJSONを読み込む場合/ plain、IE8はこれをタグで囲みます。 innerHTMLでコンテンツを取り出してjsonとして解析しようとすると、失敗します。

私はtext/htmlとしてコンテンツを送信する必要がありました。これはまったく間違っているようですが、IEで動作し、他のブラウザよりも現代的なAJAX処理を混乱させるようには見えません。

関連する問題