我使用Python 3.6和Jquery开发应用程序。我需要使用Flask会话来存储一些用户信息。当我使用Ajax代码调用服务器时,服务器会将每个Ajax请求视为一个新用户(即,它创建一个新会话)。但是,如果我通过邮递员拨打电话,服务器将保留信息并维护会话。
callServer = function(enteredText) {
var cor = null; // cor stands alr Cross-Origin request
if (window.XMLHttpRequest) {
cor = new XMLHttpRequest();
}
else if (window.XDomainRequest) {
cor = new XDomainRequest();
}
else {
alert("Your browser does not support Cross-Origin request!");
return;
}
cor.onreadystatechange = function () {
$('<div class="message loading new"><figure class="avatar"><img src="images/bot.png" /></figure><span></span></div>').appendTo($('.mCSB_container'));
updateScrollbar();
if (cor.readyState == 4) {
// responseMessage()
alert(cor.responseText.replace(/\n/g, "<br />"))
}
};
cor.open('POST', 'HERE IS THE URL', true);
// cor.withCredential = "true";
cor.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
cor.send('userInfo=' + enteredText);
}
@app.route('/myserver', methods=['POST'])
def webhook():
if "sender_id" not in session:
session["sender_id"] = random.randint(0, 1000)
print("sender_id is now set to:" + str(session["sender_id"]))
else:
print("sender_id is already instantiated as: " +
str(session["sender_id"]))
已更新: 我已经检查了以下所有解决方案:
Send cookie in HTTP POST Request in javascript
xmlhttprequest and set-cookie & cookie
Browsers not sending back cookies when using CORS XHR
没有提到的解决方案与我合作。