简体   繁体   中英

Setect AJAX Request in PHP

OK, this has taken me 3 days and i am no further on than when i started.

i am building a web app at the request of my employer. the APP requires communication with a server which uses PHP Code.

I am currently trying to get my PHP code to detect whether a request is AJAX or not. the response i am getting suggests to me that i have done something wrong.

I used the code that was marked as an answer to another question so i'm not sure what's wrong :/

This is the PHP code: - the response from the server is 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");
}

?>

the AJAX request looks like this:

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"]);
  }
});

any help here would be greatly appreciated as i am quite inexperienced with PHP and have no idea what i've done wrong

Why not just pass an additional variable along with the ajax request that indicates that it was an ajax request;

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"]);
  }
});

Then you can retrieve that in PHP;

$_GET['ajax']

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM