Error: Your session expired due to inactivity. ATG REST API session confirmation Number Missmatch
Error: Your session expired due to inactivity. ATG REST API session confirmation Number Missmatch
我正在使用 REST API 开发 ATG 门户,所有 ATG API 都使用 PostMan 进行了测试。
当我开始使用 JS 时出现错误。下面是测试代码:
http({
method : "GET",
url : "http://IP:PORT/rest/model/atg/rest/SessionConfirmationActor/getSessionConfirmationNumber"
}).then(function mySucces(response){
// localStorage.setItem("getSessionConfirmationNumer", response.data.sessionConfirmationNumber);
// localStorage.getItem("getSessionConfirmationNumer");
http({
method : "GET",
url : "http://IP:PORT/rest/model/atg/userprofiling/ProfileActor/login?_dynSessConf="+response.data.sessionConfirmationNumber+"&login=atgcust1&password=atgcust1",
// url : "http://IP:PORT/rest/model/atg/userprofiling/ProfileActor/login",
// data:formData
}).then(function mySucces(response){
console.log("done");
},function errorCallback(response) {
console.log(response);
});
});
来自控制台的输出:
angular.js:10722 GET http://IP:PORT/rest/model/atg/userprofiling/ProfileActor/login?_dynSessConf=9030570900570011195&login=atgcust1&password=atgcust1 409 (Conflict)(anonymous function) @ angular.js:10722p @ angular.js:10515g @ angular.js:10222(anonymous function) @ angular.js:14745n.$eval @ angular.js:15989n.$digest @ angular.js:15800n.$apply @ angular.js:16097(anonymous function) @ angular.js:23554n.event.dispatch @ jQuery-2.1.4.min.js:3r.handle @ jQuery-2.1.4.min.js:3
functions.js:75
Object {data: "Your session expired due to inactivity.", status: 409, config: Object, statusText: "Conflict"}
Session Confirmation Number Can be Accessible only once 之后会报500 internal server error(我写的这个逻辑这里不包含),
当我从浏览器手动获取会话确认编号并在代码中手动将其作为 _dynSessConf 值时,登录正常
请帮忙。
一些 JSON 库如 org.json 在解析大 long 时有问题。
对于大的多头,它们产生的值略有不同,这恰好发生在我的代码中,
SessionConfirmationNumber 通过 JSON 作为 Long 数据类型返回,由于 SessionConfirmationNumber 很大,我得到了四舍五入的值。
我已经使用 xmlHttp 请求解决了这个问题。
var xmlHttp = new XMLHttpRequest();
xmlHttp.open( "GET", "http://IP:PORT/rest/model/atg/rest/SessionConfirmationActor/getSessionConfirmationNumber", false );
xmlHttp.send();
console.log(xmlHttp.responseText);
感谢上帝 :)
我正在使用 REST API 开发 ATG 门户,所有 ATG API 都使用 PostMan 进行了测试。 当我开始使用 JS 时出现错误。下面是测试代码:
http({
method : "GET",
url : "http://IP:PORT/rest/model/atg/rest/SessionConfirmationActor/getSessionConfirmationNumber"
}).then(function mySucces(response){
// localStorage.setItem("getSessionConfirmationNumer", response.data.sessionConfirmationNumber);
// localStorage.getItem("getSessionConfirmationNumer");
http({
method : "GET",
url : "http://IP:PORT/rest/model/atg/userprofiling/ProfileActor/login?_dynSessConf="+response.data.sessionConfirmationNumber+"&login=atgcust1&password=atgcust1",
// url : "http://IP:PORT/rest/model/atg/userprofiling/ProfileActor/login",
// data:formData
}).then(function mySucces(response){
console.log("done");
},function errorCallback(response) {
console.log(response);
});
});
来自控制台的输出:
angular.js:10722 GET http://IP:PORT/rest/model/atg/userprofiling/ProfileActor/login?_dynSessConf=9030570900570011195&login=atgcust1&password=atgcust1 409 (Conflict)(anonymous function) @ angular.js:10722p @ angular.js:10515g @ angular.js:10222(anonymous function) @ angular.js:14745n.$eval @ angular.js:15989n.$digest @ angular.js:15800n.$apply @ angular.js:16097(anonymous function) @ angular.js:23554n.event.dispatch @ jQuery-2.1.4.min.js:3r.handle @ jQuery-2.1.4.min.js:3 functions.js:75
Object {data: "Your session expired due to inactivity.", status: 409, config: Object, statusText: "Conflict"}
Session Confirmation Number Can be Accessible only once 之后会报500 internal server error(我写的这个逻辑这里不包含),
当我从浏览器手动获取会话确认编号并在代码中手动将其作为 _dynSessConf 值时,登录正常
请帮忙。
一些 JSON 库如 org.json 在解析大 long 时有问题。 对于大的多头,它们产生的值略有不同,这恰好发生在我的代码中,
SessionConfirmationNumber 通过 JSON 作为 Long 数据类型返回,由于 SessionConfirmationNumber 很大,我得到了四舍五入的值。
我已经使用 xmlHttp 请求解决了这个问题。
var xmlHttp = new XMLHttpRequest();
xmlHttp.open( "GET", "http://IP:PORT/rest/model/atg/rest/SessionConfirmationActor/getSessionConfirmationNumber", false );
xmlHttp.send();
console.log(xmlHttp.responseText);
感谢上帝 :)