我很困惑为什么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文件。
答案 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'];