2011-01-18 12 views
1

javascriptでXMLhttpRequestを使用してウェブサイトのソースコードを取得しようとしていますが、応答を取得できません。 XMLhttpRequestを使用してソースコードを取得するにはどうすればよいですか?ここで私が今持っているものです。javascriptでXMLhttpRequestを使用してソースコードを取得する

<script language="Javascript" type="text/javascript"> 
var req = new XMLHttpRequest(); 
req.open(
    "GET", 
    "http://www.google.com", 
    true); 
req.onreadystatechange = statusListener; 
req.send(null); 

function statusListener() 
{ 
if (req.readyState == 4) 
    { 
     var docx=req.responseXML; 
     alert(docx); 
    } 
} 
</script> 

答えて

0

これは、指定されたif文の代わりに使用します。

以来、あなたは、このスクリプトがエラーを返すことで失敗させることができ、ステータスがOKであることを確認するためにチェックしていない
if (req.readystate == 4) { 
     if (req.status == 200) { 
      var docx=req.responseXML;   
      alert(docx); 
      //Can also try this just in case: 
      //var doc = req.responseText; 
      //alert(doc); 
     } 
    } 

(あなたが原因それはJavascriptであることに、オフにデバッグしている場合は、あなたが見ていない可能性があります)レスポンスは、準備完了状態が4でステータスコードが200になるまで準備ができていません。また、responseXMLが正しく動作しない場合、レスポンステキストは正しくフォーマットされていない可能性があります。

0

あなたが「REQ」という変数にXHRオブジェクトを設定したが、その後、あなたのコールバックは、「XMLHTTP」を使用しています。

+0

申し訳ありませんが、私がコピー貼り付けコードを書いていたときは間違いでした。それが正しい場合でもまだ動作しません –

+0

@SLaksが書いているように、あなたのコードを含むページのドメインがコンテンツが存在するドメインと異なる*場合、コンテンツをフェッチすることはできません。 – Pointy

0

あなたがあなたのページとは異なるドメインにはXMLHttpRequestを行うことはできませんが、あなたはまだ自分のドメイン内のプロキシスクリプトとの内容を取得することができます

#proxy-script (proxy.php) 
<?php 
echo file_get_contents ($_GET['url']); 
?> 

そして、あなたのjavascriptのは次のようになります。

<script language="Javascript" type="text/javascript"> 
var myUrl = "http://www.google.com"; 
var req = new XMLHttpRequest(); 
req.open(
    "GET", 
    "/proxy.php?url="+encodeURIComponent(myUrl), 
    true); 
req.onreadystatechange = statusListener; 
req.send(null); 

function statusListener() 
{ 
if (xmlhttp.readyState == 4) 
    { 
     var docx=xmlhttp.responseXML; 
     alert(docx); 
    } 
} 
</script> 
+0

あなたが元のエラーを修正したい場合を除き、XHRオブジェクトは "req"と呼ばれますが、コールバックは "xmlhttp"と呼ばれます。 – Pointy

+1

また、 '$ _GET ['url']'にあるものにfile_get_contentsを呼び出すことのセキュリティ上の影響を取り上げたいと思うでしょう。 –

関連する問題