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栏查询它时 但是,通常从父html/php文件运行AJAX代码时 request.open("GET", "data.php?ask=myquery", true); open(“GET”,“data.php?ask=myquery”,true); PHP文件看不到查询字符串,认为其未定义 为什么会这样 我试着用 $_REQUEST[]; $_请求[];但是没有用 我对AJAX请求使用纯javascript 下面是javascriptJavascript 为什么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栏查询
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'];