Mit einem seltsamen Problem, Sitzung nicht gespeichert, wenn Ajax Anfragen von js (localhost).Ajax und PHP Sitzung Problem, einfache Test wird nicht arbeiten
Ich habe eine einfache Demo erstellt, von der ich erwartet habe, dass sie funktioniert, aber die Sitzung wird nie gespeichert. Wenn ich jedoch direkt von meinem Webbrowser auf das PHP-Skript zugreife, funktioniert es wie erwartet und speichert die Sitzung.
HTML:
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="utf-8" />
<script src="js/jquery-1.8.0.min.js"></script>
</head>
<body>
<script type="text/javascript">
$(function(){
$.ajax({
dataType: 'json',
url: 'http://example.com/test.php',
method: 'GET',
success: function(response) {
console.log(response);
},
error: function(error) {
console.log(error);
}
});
});
</script>
</body>
</html>
PHP:
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
/* Session start */
session_start();
/* Set headers */
header('Access-Control-Allow-Origin: *');
header('Content-Type: application/json');
if (!isset($_SESSION['test'])) {
$_SESSION['test'] = 'abc';
$result = 'session_set';
} else {
$result = $_SESSION['test'];
}
echo json_encode(array('result' => $result));
?>
Überprüfen Sie auf Fehler in der Konsole und in Ihrem PHP-Skript. – Jer
Keine PHP-Fehler und keine js-Konsolenfehler. Überprüfte php Protokolldateien und versuchte, 'ini_set ('display_errors', 1) hinzuzufügen; ini_set ('display_startup_errors', 1); error_reporting (E_ALL); 'zum Anfang des PHP-Skripts. Allways gibt "session_set" zurück. –
Sie versuchen, 'ajax' aufzurufen, wenn die Seite geladen ist. Also benutze '$ (function() {... // deine ajax Methode .... //})' –