PHP & Ajax opfører sig på 2 forskellige måder på localhost & mit eksterne host
Jeg har et website, jeg har bygget en masse CRUD op i Ajax & Jquery..Problemet er, når jeg ligger det op på min VPS opfører Ajax'en ikke som på mit localhost.. Det resulterede så i at jeg ville prøve at lave et simpelt Ajax script med en simpel PHP Api. Og fandt så ud af efter min lille test at den stadigvæk opfører sig ret spooky og anderledes når jeg vil kører scriptet...
Jeg har sikret mig at jeg har installeret JSON osv. på min VPS/host
På min Windows PC, hvor jeg udvikler osv. har jeg installeret XAMPP med PHP Version 5.6.15
På min Linux VPS er der installeret PHP Version 5.3.3
Jeg skulle mene at dette ikke har noget at sige...
I mit test script som også opfører sig underligt, når jeg kører det op på min VPS har jeg disse 2 filer:
main.html (som er den HTML side med Ajax scriptet der kalder APIen)
api.php
api.php:
<?php
header("Access-Control-Allow-Origin: *");
header('content-type: application/json; charset=utf-8');
//header('Content-type: application/javascript; charset=utf-8');
if(isset($_GET["action"])){
$action = mysql_real_escape_string($_GET["action"]);
if($action == "getlist")
{
if(isset($_POST["Key"])){
if($_POST["Key"] == "abc321"){
$sendResponse = array(
"Status" => "OK",
"TestObject" => array(
"elm1" => "værdi1",
"elm2" => "værdi2"
),
"PHPMicroTime" => "".microtime()."",
"Message" => "Ajax kaldet lykkedes"
);
} else {
$sendResponse = array(
"Status" => "Error",
"Message" => "Ajax kaldet fejlede",
"PHPMicroTime" => "".microtime().""
);
}
}
}
}
if(!isset($sendResponse)){
$sendResponse = array(
"Status"=>"OK",
"Message"=>"RestAPI ready",
"PHPMicroTime" => "".microtime().""
);
}
if(isset($sendResponse)){
if(isset($_GET["dump"])){
print var_dump($sendResponse);
} else {
print json_encode($sendResponse);
}
}
?>
main.html
<html>
<head>
<title></title>
<script src="https://code.jquery.com/jquery-2.2.2.min.js" integrity="sha256-36cp2Co+/62rEAAYHLmRCPIych47CvdM+uTBJwSzWjI=" crossorigin="anonymous"></script>
</head>
<body>
<button onclick="TestAjaxRequest()">Ajax kald</button>
<div id="console"></div>
<script type="text/javascript">
function WriteToConsole(Txt)
{
if(Txt != ""){
Txt = "<pre>"+Txt+"</pre>";
}
$('#console').html(Txt);
}
function TestAjaxRequest()
{
$.ajax({
method: "POST",
dataType: "json",
url: "api.php?action=getlist",
data: { Key: "abc321" }
})
.done(function( response ) {
if(response.Status == "OK"){
WriteToConsole( "Status:OK\nSvar: " + response.Message + "\nPHP Microtime: "+response.PHPMicroTime );
} else {
WriteToConsole( "Fejl: " + response.Message );
}
});
}
$(document).ready(function() {
});
</script>
</body>
</html>
Ja, mit spørgsmål er således: hvad er årsagen til at de opføre sig forskelligt?