我在 JavaScript 中使用 REST API。当我多次请求 REST API 时,它返回(响应)无效会话 id,但我提供了一个有效的会话 id,因为我已使用此会话 id 提取数据。
有人遇到过这个问题吗?
function sugarLogin(url, user, password) {
var request = new XMLHttpRequest();
var params = {
user_auth: {
user_name: user,
password: password
},
name_value_list: [{
name: 'notifyonsave',
value: 'true'
}]
};
var json = $.toJSON(params);
var crm_api = url;
request.open("POST", crm_api, true);
request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
request.onreadystatechange = function () {
if (request.readyState == 4 && request.status == 200) {
var response = request.responseText;
var response_obj = jQuery.parseJSON(response);
if (response_obj) {
if (response_obj.name && response_obj.name == "Invalid Login") {
//invalid login
ProcessingFlag = 3;
} else {
session_id = response_obj.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);}
我已经使用上面的代码来login
设置session_id
(全局范围),然后使用这个会话 ID 我正在调用search_by_module
REST API 的函数。它工作正常,但如果频繁发出多个请求,则会显示会话 ID 无效。
尽管我在拨打电话login
之前尝试再次调用函数search_by_module
。主要问题是当我在响应返回search_by_module
并呈现 HTML 后尝试调用其他 REST 函数时,它说我的会话无效。我不知道为什么会话会立即过期,而我们知道服务器上的会话会在 24 分钟后过期(我们的糖实例托管的服务器)