从Ajax发送时会话不起作用

时间:2019-06-10 14:26:39

标签: javascript python ajax flask

我使用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

没有提到的解决方案与我合作。

0 个答案:

没有答案