मैं अपने आवेदन में Fetch Api का उपयोग कर रहा हूं।PHP सर्वर से सत्र प्राप्त करने में असमर्थ एपीआई
मुझे सत्र डेटा प्राप्त करने के लिए एक PHP सर्वर पृष्ठ मिला है जो पहले से ही परिभाषित किया गया था। ऐसा लगता है:
<?php
header('Content-Type: application/json; charset=UTF-8');
header('Access-Control-Allow-Origin: *');
session_start();
// $_SESSION['data'] already defined before
$result = array();
// print_r($_SESSION['data']);
if (isset($_SESSION['data'])) {
$result = $_SESSION['data'];
$result['code'] = 'ok';
} else {
$result['code'] = 'error';
}
echo json_encode($result, JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES);
मुझे सत्र डेटा प्राप्त करने के लिए एक और HTML पृष्ठ भी मिला। ऐसा लगता है:
<script>
$(function() {
// use $.ajax
$.ajax({
url: 'session.php',
dataType: 'json'
})
.done(function(res) {
console.log(res);
});
// end
// use fetch
fetch('session.php').then(function(res) {
if (res.ok) {
res.json().then(function(obj) {
console.log(obj);
});
}
});
// end
});
</script>
समस्या है, जब मैं $ .ajax() का उपयोग करता हूं, सत्र डेटा सही ढंग से दिखाया जा सकता है। लेकिन जब मैं fetch() का उपयोग करता हूं, सत्र डेटा अपरिभाषित था।
तो, क्या गलत है और मैं इसे कैसे ठीक कर सकता हूं? धन्यवाद!
आप 'AJAX' का उपयोग करते हैं लेकिन' session_id' और 'start_session' को नए सत्र से नहीं पारित करते हैं। लेकिन जब आप ब्राउज़र पर इस स्क्रिप्ट पर अनुरोध करते हैं तो आप session_id ब्राउज़र कुकी में सहेजे जाते हैं और आप सही सत्र प्राप्त कर सकते हैं। – Naumov