2012-04-17 6 views
4

jQueryに問題があります.XMLドキュメントを取得しようとすると、対処できるオブジェクトではなくコンソールに#documentというように戻ってきます。どうしてこれなの?それは私が作ったとすることができましたN00B間違いであったとしても、任意の助けをいただければ幸いです奇妙なjQuery AJAXの動作:XMLは#documentとして返され、オブジェクトではありません

<?xml version="1.0" encoding="UTF-8" ?> 
<ingredient> 
    <entryId>700</entryId> 
    <title>GUINEA FOWL WHOLE FRESH X 1.5KG</title> 
    <ingredientUnit>KG</ingredientUnit> 
    <ingredientCost>5.03</ingredientCost> 
</ingredient> 

:ここ

は私のJavaScriptコードです:

$.get('/ingredients/view_xml/' + ingredientId, function(xml) { 
    console.log(xml); 
}, 'xml'); 

そして、ここXMLです今は見ないよ!

答えて

3

これは、documentation意図した動作を確認されています

dataTypeと
デフォルト:インテリジェントゲス(XML、JSON、スクリプト、またはHTML)

サーバーから戻ってくることを期待しているデータの種類。 指定されていない場合、jQueryは MIMEタイプの応答(XML MIMEタイプは にあります。1.4 JSONはJavaScriptオブジェクトを生成します.1.4スクリプトでは がスクリプトを実行します)に基づいて推論しようとします。それ以外の文字は 文字列として返されます)。利用可能な型(成功コールバックの最初の 引数として渡される結果)は次のとおりです。

"jml":jQueryで処理できるXMLドキュメントを返します。
は、[...]

さらに、文書は単に、ブラウザの「ネイティブ」XML解析のラッパーですjQuery.parseXML()を使用して解析されます。生成されたドキュメントは、DOMを使用して、またはより便利にjQueryを使用して、トラバースおよび操作できます。 docからの例:

var xml = "<rss version='2.0'><channel><title>RSS Title</title></channel></rss>", 
    xmlDoc = $.parseXML(xml), 
    $xml = $(xmlDoc), 
    $title = $xml.find("title"); 

/* append "RSS Title" to #someElement */ 
$("#someElement").append($title.text()); 
// ... 
1

私はあなたがそれにjQueryのメソッドを使用したい場合は、jQueryの

$.get('/ingredients/view_xml/' + ingredientId, function(xml) { 
    console.log($(xml)); 
}, 'xml'); 
を、それをラップする必要があり、(あなたが正しいヘッダを設定している場合、ドキュメントを返す $.parseXML()によって解析されています)、それは文書であるので、それはだと思います
関連する問題