SugarCRM REST API会话经常过期

SugarCRM REST API会话经常过期,rest,sugarcrm,Rest,Sugarcrm,我在JavaScript中使用RESTAPI。当我多次请求REST API时,它返回(响应)无效的会话id,但我提供的是有效的会话id,因为我已使用此会话id提取数据。 有人遇到过这个问题吗 函数sugarLogin(url、用户、密码){ var request=new XMLHttpRequest(); 变量参数={ 用户身份验证:{ 用户名:user, 密码:密码 }, 名称\u值\u列表:[{ 名称:“notifyonsave”, 值:“true” }] }; var json=$.to

我在JavaScript中使用RESTAPI。当我多次请求REST API时,它返回(响应)无效的会话id,但我提供的是有效的会话id,因为我已使用此会话id提取数据。
有人遇到过这个问题吗

函数sugarLogin(url、用户、密码){
var request=new XMLHttpRequest();
变量参数={
用户身份验证:{
用户名:user,
密码:密码
},
名称\u值\u列表:[{
名称:“notifyonsave”,
值:“true”
}]
};
var json=$.toJSON(参数);
var crm_api=url;
请求打开(“POST”,crm_api,true);
setRequestHeader(“内容类型”、“应用程序/x-www-form-urlencoded”);
request.onreadystatechange=函数(){
if(request.readyState==4&&request.status==200){
var response=request.responseText;
var response_obj=jQuery.parseJSON(response);
如果(响应对象){
if(response_obj.name&&response_obj.name==“无效登录”){
//无效登录
ProcessingFlag=3;
}否则{
会话id=响应对象id;
ProcessingFlag=1;
}
}
}else if(request.readyState==4&&request.status==404){
ProcessingFlag=2;
}
}
request.send(“method=login&input_type=JSON&response_type=JSON&rest_data=“+JSON”)}
我已使用上述代码登录并设置会话id(全局范围) 然后使用这个会话id调用RESTAPI的
search\u by\u模块
函数。 它工作正常,但如果频繁发出多个请求,则会显示无效会话id

尽管在调用
search\u by\u module
之前,我尝试再次调用
login
函数。
主要问题是,当我尝试在
search\u by\u module
返回响应并呈现HTML后调用其他REST函数时,它说我的会话无效。我不明白为什么会话会立即过期,而我们知道服务器上的会话会在24分钟后过期(我们的sugar实例所在的服务器)

我敢打赌,您得到这个消息是因为第3项:

1/定义了一个错误回调,用于检查特定响应-无效登录-并调用登录函数。阅读你的代码,我猜这是
ProcessingFlag=3作业

2/确保登录函数正确且全局地更新会话id,以便将来的函数调用将获得正确的值


3/确保将新会话id作为rest数据中的
FIRST
参数传递给所有后续调用。我发现了这一点,浪费了很多时间才发现SugarCRM
在其rest\u数据中不支持命名参数(它是不是从函数参数角度来实现的?)这是因为我添加了会话id作为最后一个参数,而我所有的REST调用都返回了无效id。

我已经更新了我的问题并添加了登录代码,我使用了与此相同的search_by_模块,但调用的REST_数据和方法不同。我已经按照您所说的做了所有事情,但我发现了我的问题,这是由于ip发生了变化(动态ip频繁更改)。由于ip发生重大更改,sugar会话将过期。感谢所有人的回复。