好吧,这已经花了我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']