在PHP中设置AJAX请求


Setect AJAX Request in PHP

好吧,这已经花了我3天的时间,而且我刚开始的时候已经不远了。

应雇主的要求,我正在开发一款网络应用程序。APP需要与使用PHP代码的服务器进行通信。

我目前正在尝试让我的PHP代码检测请求是否是AJAX。我得到的答复表明我做错了什么。

我使用了标记为另一个问题答案的代码,所以我不确定出了什么问题:/

这是PHP代码:-来自服务器的响应是No GET or PUT request found

<?php
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: *');
header('Access-Control-Allow-Headers: Content-Type');
include_once("xmlHandler.php");
function s($message){
echo $message. "<br>";
}
if (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && ($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest')) {
    echo "GET has been received";
}else{
    s("No GET or PUT request found");
}
?>

AJAX请求如下所示:

var data = {
  "data" : "test"
};
$.ajax({
  type: "GET",
  dataType: "json",
  url: "http://www.qsl.org.uk/apps/main.php", //Relative or absolute path to response.php file
  data: data,
  contentType: "application/json",
  success: function(response) {
    console.log(response);
    alert("Form submitted successfully.'nReturned json: " + data["json"]);
  }
});

如果有任何帮助,我将不胜感激,因为我对PHP非常缺乏经验,也不知道我做错了什么。

为什么不在ajax请求的同时传递一个额外的变量,表明这是一个ajax请求;

var data = {
  "data": "test",
  "ajax": true
};
$.ajax({
  type: "GET",
  dataType: "json",
  url: "http://www.qsl.org.uk/apps/main.php", //Relative or absolute path to response.php file
  data: data,
  contentType: "application/json",
  success: function(response) {
    console.log(response);
    alert("Form submitted successfully.'nReturned json: " + data["json"]);
  }
});

然后你可以在PHP中检索它;

$_GET['ajax']