2017-12-31 315 views
0

私は同じルートディレクトリ内のdata.txtからhello worldテキストを返す単純なajaxリクエストを作成しようとしています。AJAX:request.status == 200 falseを返しますか? (ページに表示されないデータ)

問題:ステータスを確認するときに、文が表示されない場合は、 何も表示されません。

TWIST:。しかし、文は要求が に、コンソールログに記録されます(ただし、データがページに書き込まれていない削除された場合であれば

CODE

// AJAX REQUEST EXAMPLE 
// XHR is the api that is used for AJAX REQUESTS 
// Create a XHR request object 

var request = new XMLHttpRequest(); 
// create the 'request' for this object. open() reqest method GET/POST, location of the data file (ajax requests has same domain poilcy - so you can't request data objects for domains from other than what your currently on), true/fasle (whether we want request ot be asyncronous or not fasle means its asyc i.e. brwoser waits until requests is done before it does anything else) 
request.open('GET', 'data.txt', true); 
// send request to the server for data 
request.send(); 
if (request.status=== 200) { 
    document.writeln(request.responseText); 

} 
    console.log(request); 
+0

それは明確ではありません。 –

答えて

1

これはあなたが理解するのに役立つことを願って、私はあなたのためにいくつかのコメントを置いた。

<!DOCTYPE html> 

<html> 

<head> 
    <meta charset="utf-8"> 
    <title>stackoverflow test</title> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
</head> 

<body> 

    <script type="text/javascript"> 
    // AJAX REQUEST EXAMPLE 
    // XHR is the api that is used for AJAX REQUESTS 
    // Create a XHR request object 

    var request = new XMLHttpRequest(); 


    request.onreadystatechange = function() //This is to wait for response (eventually from your PHP script) 
    { 
     if (request.readyState === 4 && request.status === 200) //And when status is OK use result 
     { 

     document.writeln(request.responseText); 
     console.log(request.status); //here the status request 
     console.log(request); //here the complete object request 
     } 
    } 

    // open() request method GET/POST, location of the data file (ajax requests has same domain policy - so you can't request data objects for domains from other than what your currently on), true/false (whether we want request ot be asyncronous or not false means its asyc i.e. browser waits until requests is done before it does anything else) 
    request.open('GET', 'data.txt', true); 
    // send request to the server for data 
    request.send(); 


    </script> 


</body> 

</html> 

今、あなたは、ブラウザのコンソールにsuccess requestとして200を取得し、ブラウザでdata.txt出力されます:すべて私にお気軽に。

stack_example

乾杯、ジュリオ

+0

コードが正常に動作しました:2件質問:request.readyState === 4を確認してからonreadystatechange ()コードはそれほど違いはありません、なぜ私のコードは動作しませんか?アイデア:) – Shaz

+0

質問2:onreadystatechangeは必須で、PHPの目的は何ですか? – Shaz

+0

私は根本的にここで間違っていることを理解しようとするので、それを繰り返さないようにしてください; – Shaz