アップデート
あなたが他の回答に残したコメントに応えて、私は状況を明確に理解していることを確認したいだけです:
- ローカル ハード ドライブからではなく、ローカル ホストからテストしています (つまり、ブラウザーの URL には " http://localhost " が含まれており、ハード ドライブ上の場所ではありません。
- AJAX 応答を作成すると
alert(...)
、結果は null または同等のものになります。
- URL は有効で、ブラウザにロードできます。
- リクエストしている URL は、元のページと同じドメイン内にあります。
これらが当てはまる場合は、次のトラブルシューティングを試してみます。
- Firefox を使用して Firebug をインストールします (これは、AJAX 要求が失敗しているかどうか、およびその理由を判断するために必要です)
- Firebug のコンソールを使用して、コードにログを含めます。
- jQuery の
ajax(...)
メソッドを使用し、ログ コードを含めてエラーを処理し、何が起こったかを確認します。表示中のページが失敗したリクエストに対する視覚的な応答を必要とせず、Firebug を使用している場合は、この手順を回避できる場合があります。
これに使用するコードは次のとおりです。
$.ajax({
url: "http://stackoverflow.com/",
success: function(html) {
var responseDoc = $(html);
// Output the resulting jQuery object to the console
console.log("Response HTML: ", responseDoc);
}
// Handle request failure here
error: function(){
console.log("Failure args: ", arguments);
}
});
Firebug ログの出力を投稿すると、問題の特定と解決策の発見が容易になります。Firebug もログに記録するXMLHttpRequests
ので、サーバーとの間で何が送信されているかを正確に確認できます。Firebug は、何らかのサーバー エラーを返した場合、リクエストの外観を変更します (これにより、上記の #3 を回避できます)。 )。
メソッドを使用することもできますが、次のようにコールバックajax(...)
を使用する方が簡単です。get(...)
$.get("http://stackoverflow.com", function(html) {
var responseDoc = $(html);
});
responseDoc
から要素を抽出し、他の jQuery オブジェクトと同じように扱うために使用できる jQuery オブジェクトになります。jQuery 操作メソッドを使用して、から内容を抽出し、responseDoc
必要に応じてメイン ドキュメントに追加できます。
メソッドが提供する追加機能が必要な場合は$.ajax(...)
、次のコードを使用します。
$.ajax({
url: "http://stackoverflow.com/",
success: function(html) {
var responseDoc = $(html);
}
error: function(XMLHttpRequest, textStatus, errorThrown){
// Handle errors here
}
});