为什么PHP没有收到我的AJAX请求字符串?

时间:2017-02-16 03:35:49

标签: javascript php ajax

我很困惑为什么PHP将我的请求字符串视为未定义。

 $_GET['ask'] 
在我的php文件中 产生此错误 - > 注意:未定义索引:询问

但是当我从浏览器中的url栏查询php文件时,就像这样

localhost/Websites/webProject/data.php?ask=myquery 

我已经设置了php文件来回显我的字符串,它确实做到了,但只有当我从浏览器URL栏查询它时才会这样做。

但是当通常从父html / php文件

运行AJAX代码时
 request.open("GET", "data.php?ask=myquery", true); 

PHP文件没有看到查询字符串并认为它未定义。

为什么会这样?

我试过用

 $_REQUEST[]; 
但无济于事。

我正在使用纯JavaScript来处理AJAX请求。

这是javascript

requestResponse();
function requestResponse()
{
  var READY_STATE_DONE = 4; /* request finished and response is ready */
  var SUCCESS          = 200; /* "OK" */

  setInterval(function(){
    var request = new XMLHttpRequest();
    request.onreadystatechange = function(){
      if(this.readyState == READY_STATE_DONE && this.status == SUCCESS)
      {
        var response = this.responseText;
        console.log(request.responseText);
        document.getElementById("test").innerHTML += "<br>" + response;
      }
    }
    request.open("GET", "data.php?ask=myquery", true);
    request.send();

  }, 3000)

}

这是PHP内容

testRequest();
function testRequest()
{
  $reqString = $_REQUEST['ask'];
  include("dbCredentials.php");
  include("dbConnect.php");


  if($reqString == "myquery")
  {
    echo("<br />REQUEST IS: " . $reqString);
    echo("<br /> Your request is granted");
  }
}

披露:我已经用data.php替换了以前的php文件。

1 个答案:

答案 0 :(得分:0)

尝试使用Jquery Ajax请求。当你想传递字符串而不是序列化数据时,这是最有效的

HTML:

    <script type='text/javascript' src='https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js'></script>
<script type='text/javascript'>
    $(function(){
        $.ajax({
            type: 'post',
            url: 'data.php?ask=whut',
            success: function(response){
                alert(response);
            }
        });
    });
</script>

PHP内容:

echo $_GET['ask'];