2016-05-13 20 views
2

私は現在Ajaxを学びたいと思っており、チュートリアルに従っています。私はそれからちょうど単語「成功」をエコー表示command.phpという名前のPHPファイルを持っているこのコードが正しく機能しないのはなぜですか?

<!DOCTYPE html> 
<html> 

<head> 

<script type="text/javascript"> 
function MyFunction(){ 

    var xmlhttp; 

    if(window.XMLHttpRequest){ 
     xmlhttp = new XMLHttpRequest(); 
    } 

    else { 
     xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
    } 

    xmlhttp.onreadystatechange = function(){ 
     if(ajaxRequest.readyState == 4){ 

      document.getElementById("MyDiv").innerHTML = xmlhttp.responseText; 
     } 
    } 

    xmlhttp.open("POST", "command.php", true); 
    xmlhttp.send(); 

} 
</script> 

</head> 

<body> 

<button onclick="MyFunction()">Execute</button> 

<div id="MyDiv"></div> 

</body> 

</html> 

:私は、次のスクリプトを作成しました。

明らかに、このスクリプトの目的は、実行ボタンがクリックされたときに「成功」​​という単語を返すことです。私はこれを非常に正確にチュートリアルに従っているので、私は何を書いたのが間違っているのか分かりません。

私は他のAjaxチュートリアルを見て、彼らが何をしていたのかを見てきました。 Ajaxのいくつかの亜種は、他のものと非常に異なって見えるようです。つまり、多くのチュートリアルには、私が書いたようなコードが含まれていますが、他の多くのもの(this oneなど)はかなり異なって見え、多くの '$'記号が含まれています。どうしてこれなの?

+3

このチュートリアルは非常に古いものでなければなりません。 'new ActiveXObject(" Microsoft.XMLHTTP ")を使ったフォールバックは、Internet Explorer 6以前でのみ必要です。私はそれをスキップし、ちょうどXmlHttpRequestを使用します。 – GolezTrol

+1

'jQuery'を使ってやってみてください。簡単で、より良い方法です...! –

+0

これはAJAXリクエストの例です。http://www.w3schools.com/ajax/tryit.asp?filename=tryajax_post –

答えて

3

コピー/ペーストエラーのように見えます。私は推測している:

if(ajaxRequest.readyState == 4){ 

は次のようになります。

if(xmlhttp.readyState == 4){ 

、あなたのブラウザの開発ツールを使用しているようにも、それは鳴りません。コンソールには次のようなメッセージが表示されます。

Uncaught ReferenceError: ajaxRequest is not defined 

希望するブラウザの開発ツールをお読みになることをお勧めします。

+0

になりました。これは私の問題を解決しました。唯一の問題は、これが正しいことであるかどうかです。人々がそれをここで言及する前に私に知られていない、私が使用しているチュートリアルは非常に時代遅れのようです。私はこれを行う新しい方法を学ぶ必要がありますか? –

+0

これは、外部のJavaScriptライブラリにまったく依存したくない場合に適しています。 'jQuery'のようなものに依存しても構わないのであれば、jQueryの' $ .ajax'メソッドを読んでお勧めします。 – bmceldowney

関連する問題