Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么PHP没有收到我的AJAX请求字符串?_Javascript_Php_Ajax - Fatal编程技术网

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

Javascript 为什么PHP没有收到我的AJAX请求字符串?,javascript,php,ajax,Javascript,Php,Ajax,我不明白为什么PHP认为我的请求字符串是未定义的。 $_GET['ask'] $\u在我的php文件中获取['ask'] 生成此错误->注意:未定义索引:ask 但是当我像这样从浏览器的url栏查询php文件时 localhost/Websites/webProject/data.php?ask=myquery localhost/Websites/webProject/data.php?ask=myquery 我已经将php文件设置为回显我的字符串,它确实会这样做,但仅当我从浏览器URL栏查询

我不明白为什么PHP认为我的请求字符串是未定义的。 $_GET['ask'] $\u在我的php文件中获取['ask'] 生成此错误->注意:未定义索引:ask

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

localhost/Websites/webProject/data.php?ask=myquery localhost/Websites/webProject/data.php?ask=myquery 我已经将php文件设置为回显我的字符串,它确实会这样做,但仅当我从浏览器URL栏查询它时

但是,通常从父html/php文件运行AJAX代码时

request.open("GET", "data.php?ask=myquery", true); open(“GET”,“data.php?ask=myquery”,true); PHP文件看不到查询字符串,认为其未定义

为什么会这样

我试着用 $_REQUEST[]; $_请求[];但是没有用

我对AJAX请求使用纯javascript

下面是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)

}
requestResponse();
函数requestResponse()
{
var READY_STATE_DONE=4;/*请求已完成,响应已准备就绪*/
var SUCCESS=200;/*“正常”*/
setInterval(函数(){
var request=new XMLHttpRequest();
request.onreadystatechange=函数(){
if(this.readyState==READY\u STATE\u DONE&&this.status==SUCCESS)
{
var response=this.responseText;
console.log(request.responseText);
document.getElementById(“test”).innerHTML+=“
”+响应; } } 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");
  }
}
testRequest();
函数testRequest()
{
$reqString=$_请求['ask'];
包括(“dbCredentials.php”);
包括(“dbConnect.php”);
如果($reqString==“myquery”)
{
echo(
请求为:“.$reqString”); echo(“您的请求已被批准”); } }

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

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

HTML:


可能是因为您在AJAX中请求
busData.php
,但当您进入浏览器url时,
data.php
,或者至少这没有帮助。请发布javascript。您的查询变量名为ask,php返回未定义索引通常为。你应该使用
$\u GET['ask']
,而不是
$\u GET['key']
缓存了吗?是的,@FlashspeedIfe,我让javascript工作了。
    <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>
echo $_GET['ask'];