【发布时间】:2018-04-29 21:07:25
【问题描述】:
我在我的程序中使用烧瓶会话来维护所有动态信息。我已将我的服务托管在本地主机上。
from flask import Flask,make_response,render_template, request, jsonify,json,jsonify,send_from_directory,session
from flask.ext.cors import CORS, cross_origin
import requests
app = Flask(__name__)
app.secret_key='test'
cors = CORS(app)
app.config['CORS_HEADERS'] = 'Content-Type'
@app.route('/getAnswer')
@cross_origin()
def getAnswer():
userQuery = request.args.get("query")
session['username']="testuser"
session['userid']="Utkj3YC"
reply=askquestion(userQuery,session)
print "giving response : ",str(reply)
answer=str(reply)
return jsonify(response=answer,id="1",status="suc",dialog="initial")
if __name__ == '__main__':
app.run(host='0.0.0.0',processes=True,debug=True,port=8000)
这是我的烧瓶服务,当我从邮递员 restclient 测试它时,它工作正常。邮递员请求维护相同的会话变量。
问题是当我将此服务与我的 UI 集成时。每次 ajax 请求都会重置烧瓶会话变量,因此我无法维护会话。 我的ajax调用如下
$.ajax({
url: "http://127.0.0.1:8000/getAnswer",
method: 'GET',
data: { query: query,dialog:dialog },
success: function(data) {
var $chatBox = $('#botReplyDiv').clone().prop('id',"botdiv"+data.id);
var $loading = $('.loader');
$chatBox.css("display", "block");
var ul = document.createElement('ul');
console.log(data.response);
var resp=data.response;
var li=document.createElement('li');
li.appendChild(document.createTextNode(data.response));
ul.appendChild(li);
}
});
我也尝试在 ajax 请求中添加它。
xhrFields: {
withCredentials: true
}
但问题仍然存在。每次在烧瓶中创建新会话时。但是当我使用 POSTMAN 执行相同的代码时,它会保持相同的会话。为了使 ajax 调用在每个请求中保留相同的会话,我必须做哪些更改?
【问题讨论】:
标签: jquery python ajax session flask