ホームページ  >  記事  >  ウェブフロントエンド  >  jquery $.ajax() XML data_jqueryを取得するための小さな問題の解決策

jquery $.ajax() XML data_jqueryを取得するための小さな問題の解決策

WBOY
WBOYオリジナル
2016-05-16 18:15:451113ブラウズ

開始コードは次のとおりです:

コードをコピー コードは次のとおりです:

$。 ajax({
type: "get",
url: "Database/App_all.xml",
dataType: "xml",
timeout: 2000,
beforeSend: function () { },
成功: function (xml) {
$(xml).find("app[id='id-1']").find("auther").appendTo($("#contain "));
},
error: function () {
alert("ajax failed!");
}
});

これは、App_all からです。XML ファイル内で ID「id-1」の項目を検索し、その子ノードで author タグを見つけて、そのコンテンツを
を含む ID を持つ div に追加します。 XML でそれを見つけるには、コンテンツは cocept です。cocept フィールドを取り出してコンテナに入れたいだけです

その結果、このコードは Firefox で有効になります。 Opera と Opera を使用しましたが、Safari と Chrome では機能しなかったので、公式の jQuery フォーラムに行き、StackFlowover
フォーラムで質問しました。後者の誰かが次のように答えました。
を使用していたことは確かです。ほんの5時間前にオフィスで$.ajaxをChromeで使用しましたが、そのような問題はありませんでした。
ここでもそれを使用していると思いますが、ChromeのjQueryUIでは問題はないと思います。彼はそれを使用することに問題はないと言いましたが、私自身の問題でもありました。後で誰かが私にもっと複雑な提案をしてくれました。


Chrome または Safari を使用する必要があります。 JS エラーを追跡し、実際の AJAX リクエストを追跡するための組み込み開発者ツール (Ctrl SHIFT I)。


コードは document.ready でラップされていますか? JavaScript コンソールにもエラーがありますか?成功後のコールバック行。
サーバーから返された XML ファイルの MIME タイプが間違っている可能性があります。
Chrome の または で確認できます。 safari の組み込み開発者ツール - XML リソースが選択されているときにヘッダー タブを探すだけです。
それが実際の問題である場合は、正しい MIME を返すように Web サーバーの設定 (Apache のメイン設定または .htaccess) を調整する必要があるかもしれません。 -type

結局のところ、jquery ajax フレームワークを独学で学び始めたばかりです... こんな難しい問題に遭遇すると本当に面倒です...

しかし、うっかり発見、問題は解決しました...

成功後に Firebug を使用してページ要素のステータスをチェックしたところ、次のことがわかりました:

コードをコピー コードは次のとおりです。

cocept
🎜>

ふと気づいたのですが、prettyToを使って直接挿入する方法です タグ名を挿入しても、ChromeやSafariでは認識できないのも無理はありません(別の面から見ると、Firefoxは強力ですね…) ということで、改造コード


コードをコピーします コードは次のとおりです: success: function ( xml) {
$("#contain").html($(xml).find( "app[id='id-1']").find("auther").text()); 🎜>}


まず、必要な要素の text() の値を取り出し、それを html() メソッドを使用してコンテナーに挿入して html を変更すれば完了です。すべてのテストに合格しました
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。