2016-07-07 11 views
-1

私のAjaxコールに問題がありますが、私はそれを見ることができません。まず、私が持っている私の前のファイル、JavaScriptで:Javascript ajaxコールにはPHPレスポンスがありません

someButton.addEventListener('click', function(){ makeRequest('arg') }); 
function makeRequest(params){ 

     var http_request = false, 
      url = 'actions.php'+'?state='+params; 

     if (window.XMLHttpRequest){ 
      http_request = new XMLHttpRequest(); 
      if (http_request.overrideMimeType) { 
       http_request.overrideMimeType('text/xml'); 
      } 
      }else if(window.ActiveXObject){ 
      try{ 
       http_request = new ActiveXObject("Msxml2.XMLHTTP"); 
      }catch(e){ 
       try{ 
        http_request = new ActiveXObject("Microsoft.XMLHTTP"); 
       }catch(e){} 
      } 
     } 

     if (!http_request) { 
      console.log('Fail :(problem1'); 
      return false; 
     } 

     http_request.onreadystatechange = alertContents; 
     http_request.open('GET', url, true); 
     http_request.send(null); 


     function alertContents(){ 

      if (http_request.readyState == 4) { 
       if (http_request.status == 200) { 

        console.log(http_request.responseText); 
        console.log(http_request.responseXML); 

       } else { 
        console.log('problem2.'); 
       } 
      } 
     } 
    } 

そしてaction.phpで私が持っている:

<?php return 'bla'; ?> 

JavaScriptのAJAX呼び出しがcommondコードで、すべてはウェブとPHPで検索を見ることができます私が証明するのが最も簡単です。しかし、それは動作しませんでした。 コンソールに私はレスポンスがなく、 "要素が見つかりません"のように表示されます。

私はAJAXを実行した場合:

console.log(http_request); 

それは返す:http://php.net/manual/en/function.return.php:あなたは

<?php echo'bla'; ?> 

にaction.php

XMLHttpRequest { onreadystatechange: alertContents(), readyState: 4, timeout: 0, withCredentials: false, upload: XMLHttpRequestUpload, responseURL: "http://localhost/ordertask/task_act…", status: 200, statusText: "OK", responseType: "", response: "" } 
+0

答えは簡単で、 "エコー"や "プリント"で完璧に動作しますが、なぜ私は "リターン"に焦点を当てるのか分かりません。回答をありがとう – Muribury

答えて

0

変更は、ドキュメントを見てください。私はこれが助けてくれることを願っています。

+1

また、安全のために、最後から '?>'を削除してください。それはベストプラクティスです。それは、あなたが偶発的な尾びれのキャラクターを持つのを防ぎます。 Ow、「echo」と「bla」の間にスペースを入れてください – aximus

0

私は「リターン」の文のような印刷操作しようと問題はPHPファイルであると考え、代わりの

<?php 
    echo'bla'; 
exit; 
?> 
0

このコードを試してみてください「印刷( 『BLAを』);」または "echo 'bla';" Ajaxがphpからの返信メッセージを処理するとき、少なくとも "bla"を読んでconsole.log()に入れてください。

関連する問題