Ich habe eine Funktion erstellt, die zählt, wie viel Zeit ich auf einer Seite verbracht habe und woher ich kam. Ich sammle alle Daten und speichere sie in einem JSON, aber wenn ich versuche, diesen JSON über den AJAX zu senden, warnt er mich mit einer leeren Alarmbox, was bedeutet, dass nichts gesendet wird. Ich habe versucht, async zu false hinzuzufügen, weil ich die onbeforeunload Funktion verwende, aber das funktioniert nicht. Ich habe unzählige Kombinationen mit AJAX-Einstellungen ausprobiert, aber nichts funktioniert.Senden von JSON über AJAX nicht möglich
HTML/JS
(function(){
var time,timeSite,endTime,seconds,testObject,retrievedObject,text;
window.onload=function(){
time= new Date();
}
window.onbeforeunload=function(){
endTime = new Date();
timeSite= time.getTime()-endTime.getTime();
seconds =Math.abs(timeSite/1000);
window.localStorage['seconds']=seconds;
text = 'Visitor accessed site directly.';
if(document.referrer == ''){
var link = text;
} else{
var link = document.referrer;
}
var url = window.location.href;
var main = {
'From': link,
'Current was' : url,
'Time Spent': seconds
}
$.ajax({
type: "POST",
data: {'data': main},
url: "http://localhost:8080/projectFour/test.php", //i use this page only to check if i receive data
contentType:'application/json',
success: function(data) {
alert(data);
},
error: function(xhr, ajaxOptions, thrownError) {
if (xhr.status == 200) {
alert(ajaxOptions);
}
else {
alert(xhr.status);
alert(thrownError);
}
}
});
}
})();
test.php
<?php
if(isset($_POST['main'])) {
$obj = json_decode($_POST['main']);
//some php operation
echo $obj;
}
?>
müssen Sie das Objekt selbst string – charlietfl
Ich habe schon versucht, das funktioniert nicht ... –
der Kommentar neben der URL ... ist verwirrend .. vielleicht ist Ihr Verständnis der URL Prop ist falsch. – Seabizkit