我的应用程序当前正在从我的文件系统打开并向托管在云 9 上的服务器发出请求。每当我从同一页面提交信息时,我都会从同一页面发出两个请求。
第一个请求是创建新资源,第二个请求是上传文件。完成第一个请求后,我设置了一个会话变量,该变量对于成功处理第二个请求至关重要,因为它用于身份验证,但是当我执行第二个请求时,该变量不存在。
我正在使用 Angular 发出请求,我觉得这是相关的,因为应该存储在客户端上的会话 id 占位符应该在第一个请求之后存在,但事实并非如此,我表示怀疑 Angular 的处理方式可能是请求可能会发生冲突。
为了获得会话 ID,我下载了我的应用程序的脚本文件,同时从磁盘加载了其他所有内容,我确实得到了一个 sid
编辑可能不是将我的应用程序的网址保留在 png 上的最佳决定
在客户端,这就是我执行请求的方式。
$http.post('www.myurl.com/firstBatch',app).success(function(data)
{
var res = data;
if(res == 'true')
{
sendSecondBatch($scope, function(formData)
{
var tok = encodeURIComponent($scope.application.title);
$http.post('www.myurl.com/secondbatch', formData, {
headers : {'Content-Type' : undefined},
transformRequest : angular.identity
}).success(function(data){
//data
if(data == 'true')
{
//both of the request's succeeded
}
})
});
}
});
在服务器端,我有一条处理一个请求的路由,而另一条处理第二个请求的路由。
function handleFirst()
{
//logic
req.session.myarray =['myname'];
}
并且位于不同的路线
function handleSecond()
{
var myname = req.sesssion.myarray[0];
}
myname
未定义,表明会话没有持续