我是PHP新手,在使用会话时遇到问题。我使用AJAX从javascript调用登录php脚本。我想在那里创建会话并设置一个值。
<?php
ini_set('display_errors', 1);
session_start();
header('Content-Type: application/json');
header('Access-Control-Allow-Origin: *');
$_SESSION['username'] = "username";
?>
我用javascript处理响应,并再次使用AJAX调用另一个php脚本。另一个文件如下:
<?php
ini_set('display_errors', 1);
session_start();
header('Access-Control-Allow-Origin: *');
header('Content-Type: application/json');
$username = $_SESSION['username'];
?>
但是username为null。如果我在两个文件中都请求了会话ID,会话ID就会更改。从第一个文件发送包含PHPSSID的响应Cookie。我必须在调用第二个脚本的AJAX调用中使用这个id吗?
更新:根据请求AJAX代码:
function callAjax(url, data, successCB, errorCB) {
$.ajax({
url: url,
type: 'post',
data: data,
success: successCB,
error: errorCB
});
}
调用类似:
callAjax(GET_TEMPLATES_PHP_URL, {}, onGetTemplateSuccess, onRessourceRetrievalError);
我检查了类似SO问题的答案,但没有帮助。
有什么想法吗?提前谢谢。
感谢用户n-dru,我明白了。我把剧本叫做"http://myside.com/script.php"来自"http://www.myside.com/index.html".因为脚本调用中缺少'www',所以它是对不同来源的调用。所以饼干丢了。我添加了www,从php中删除了"Allow Orgin",现在它可以工作了。
谢谢大家!