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
て設定し(グローバル スコープ)、このセッション ID を使用してREST API の関数をsession_id
呼び出しています。search_by_module
正常に動作していますが、複数のリクエストが頻繁に行われると、無効なセッション ID と表示されます。
login
呼び出す前に関数を再度呼び出そうとしましたがsearch_by_module
。主な問題は、応答が HTML から返されてレンダリングされた後に他の REST 関数を呼び出そうとしたときにsearch_by_module
、セッションが無効であると表示されることです。サーバーセッションが24分後に期限切れになることがわかっているのに、セッションがすぐに期限切れになる理由がわかりません(シュガーインスタンスがホストされているサーバー)