いつものように、ドキュメンテーションはあなたの友達です:
受け入れる
デフォルト: DataType に依存
要求ヘッダーで送信されるコンテンツ タイプで、サーバーが受け取る応答の種類をサーバーに通知します。受け入れ設定を変更する必要がある場合は、$.ajaxSetup() メソッドで一度変更することをお勧めします。
データ・タイプ
デフォルト: Intelligent Guess (xml、json、script、または html)
サーバーから返されることを期待しているデータのタイプ。何も指定されていない場合、jQuery は応答の MIME タイプに基づいてそれを推測しようとします (XML MIME タイプは XML を生成し、1.4 では JSON は JavaScript オブジェクトを生成し、1.4 ではスクリプトがスクリプトを実行します。文字列として返されます)。利用可能な型 (および成功のコールバックに最初の引数として渡される結果) は次のとおりです。
" xml ": jQuery で処理できる XML ドキュメントを返します。
" html ": HTML をプレーン テキストとして返します。含まれている script タグは、DOM に挿入されたときに評価されます。
" script ": 応答を JavaScript として評価し、プレーン テキストとして返します。_=[TIMESTAMP]
キャッシュ オプションが true に設定されていない限り、クエリ文字列パラメータ を URL に追加してキャッシュを無効にします。注: これにより、POST がリモート ドメイン リクエストの GET に変わります。
" json ": レスポンスを JSON として評価し、JavaScript オブジェクトを返します。jQuery 1.4 では、JSON データは厳密な方法で解析されます。不正な形式の JSON は拒否され、解析エラーがスローされます。(適切な JSON 形式の詳細については、json.org を参照してください。)
" jsonp ": JSONP を使用して JSON ブロックに読み込みます。?callback=?
URL の末尾にエクストラを追加
して、コールバックを指定します。
_=[TIMESTAMP]
キャッシュ オプションが true に設定されていない限り、クエリ文字列パラメータ を URL に追加してキャッシュを無効にします。
" text ": プレーン テキスト文字列。スペースで区切られた複数の値: jQuery 1.5 以降、jQuery は dataType を Content-Type ヘッダーで受け取ったものから必要なものに変換できます。たとえば、テキスト応答を XML として処理する場合は、dataType に " text xml " を使用します。また、JSONP リクエストを作成し、それをテキストとして受け取り、jQuery によって XML として解釈することもできます: 「jsonp text xml」。同様に、「jsonp xml」などの短縮文字列は、最初に jsonp から xml への変換を試み、失敗すると jsonp からテキストに変換し、次にテキストから xml に変換します。
今あなたの問題に戻ります。私はcofeescriptに精通していませんが、dataType
どちらが文字列であるかに反して、accepts
パラメーターはマップであり、次のように使用する必要があります:
$.ajax({
url: ...
dataType: 'json',
accepts: {
xml: 'text/xml',
text: 'text/plain'
}
});